jquery下ajax異步執行操作筆記

1、首先導入jquery的js文件

2、在腳本function中添加以下代碼:

$.ajax( {

      cache : false,  // (默認: true) jQuery 1.2 新功能,設置爲 false 將不會從瀏覽器緩存中加載請求信息

      ifModified  : true,  //(默認: false) 僅在服務器數據改變時獲取新數據。使用 HTTP 包 Last-Modified 頭信息判斷。

      type : 'POST',  //(默認: "GET") 設置請求方式 ("POST" 或 "GET"), 默認爲 "GET"。注意:其它 HTTP 請求方法,如 PUT 和 DELETE 也可以使用,但僅部分瀏覽器支持。

      timeout  :  5000, //設置請求超時時間(毫秒)。此設置將覆蓋全局設置。

      url : 'contractAdmin',  //設置請求路徑

     data : {  //設置發送請求時傳遞的參數,前面是key,後面是value,中間用冒號隔開,各參數之間用逗號隔開,最後一個參數後沒有逗號或其它任何符號。
       'operation' : '7',  

       'contractChipId' : param      

       },

     //或者直接序列化一個form表單

     data : $("#form2").serialize(),

     success : function(data) {

         //ajax請求發送成功進入該方法,data是異步返回的數據,在此進行處理。

         //當dataType爲‘html’的時候,data就是返回的html值,

         //當dataType爲‘json’的時候,可以通過$.each(data,function(x,args){})遍歷返回值,data是返回的json格式的list內容,

         // x 是遍歷的次數,從 0 開始,args是集合中的單個對象,可以通過json中的key獲取到對應的value :args.name
      },

     error : function(data) {
              //(默認: 自動判斷 (xml 或 html)) 請求失敗時調用。參數:XMLHttpRequest 對象,錯誤信息,(可能)捕獲的錯誤對象。
      },    

    complete: function(data) {

          //請求完成後回調函數 (請求成功或失敗時均調用)。參數:XMLHttpRequest 對象,成功信息字符串。

     },     

    beforeSend  : function(data){

       // 發送請求前可修改 XMLHttpRequest 對象的函數,如添加自定義 HTTP 頭。XMLHttpRequest 對象是唯一的參數。譬如加載等待圖片等。

    },

     dataType : 'text'  //預期服務器返回的數據類型。如果不指定,jQuery 將自動根據 HTTP 包 MIME 信息返回 responseXML 或 responseText,

                         並作爲回調函數參數傳遞,可用值:

                         "xml": 返回 XML 文檔,可用 jQuery 處理。

                         "html": 返回純文本 HTML 信息;包含 script 元素。

                         "script": 返回純文本 JavaScript 代碼。不會自動緩存結果。

                         "json": 返回 JSON 數據 。

                         "jsonp": JSONP格式。使用 JSONP 形式調用函數時,如 "myurl?callback=?" jQuery 將自動替換 ? 爲正確的函數名,以執行回調函數。
     });

注:以上屬性可選擇性使用,詳見jquery API幫助文檔 AJAX部分

3、在響應請求的後臺中做如下響應:

      response.setContentType("application/text;charset=UTF-8");
      response.getWriter().write(status);
      return;

    response.setContentType("application/json;charset=UTF-8");
    String json = "{\"leng\":\"0\"}";//或者從數據庫查詢相關信息賦給Bean對象,然後重寫Bean類的toString()方法爲json格式,將對象toString寫回。
    response.getWriter().write(json);
    return;

 

示例:

$.ajax( {//頁面
      cache : false,
      type : 'POST',
      url : 'contractAdmin',
      data : {
       'operation' : '7',
       'contractChipId' : param
      },
      success : function(data) {
       if(data == 1){
        $("#tr"+param).html("");//清除tr
        $(window.parent.document).find("body").messagebox('恭喜,刪除成功', '', 1, 1000);
       }
      },
      error : function() {
       $(window.parent.document).find("body").messagebox('很遺憾,刪除失敗', '', 0, 1000);
      },
      dataType : 'text'
     });

//響應請求端(後臺)

   response.setContentType("application/text;charset=UTF-8");
   response.getWriter().write(status);
   return;

或者

$.ajax( {
  cache : false,
  type : 'POST',
  url : $("#JSON").val(),
  data : {
   'JSONChildren' :  $("#JSONChildren").val()
  },
  success : function(data) {
   $("#JSONLast").html("<option value='0'>請選擇 </option>");
   $.each(data, function(x, args) {//遍歷返回值
    $("#JSONLast").append(
      "<option value='" + args.id + "'>" + args.name + "</option>");
   });
  },
  error : function(x, y, z) {
   alert(x + "|\n" + y + "|\n" + z);
  },
  dataType : 'json'
 });

 

//後臺

List<Police> policeList = getLastPolice(strPoliceId);
  if(policeList == null){
   policeList = new ArrayList<Police>();
  }
  response.setContentType("application/json;charset=UTF-8");
  response.getWriter().write(policeList.toString());

 

/**
  * 爲使本類可以被JSON解析,覆寫toString方法
  */
 @Override
 public String toString() {
  return "{\"id\":\"" + policeId + "\",\"name\":\"" + policeName + "\"}";
 
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章