AJAX請求 全域函數的使用

來源:互聯網
上載者:User

我們可以把AJAX全域函數附加到特定的DOM元素。這些函數在AJAX請求處理的不同階段或在請求最終成功或失敗時將被觸發

AJAX全域函數的任何一個命令文法都是一致的,所以統一在下表中說明。

ajaxStart(callback)

ajaxSend(callback)

ajaxSuccess(callback)

ajaxError(callback)

ajaxComplete(callback)

ajaxStop(callback)

把傳入的回呼函數附加到所有匹配元素上,一旦到達AJAX請求處理的指定時刻就觸發回呼函數。

參數

 

callback

(函數)將被附加的回呼函數。參照下表瞭解何時回呼函數被觸發以及什麼參數將被傳遞。

傳回值

封裝集

AJAX全域回呼函數(按觸發順序排列)

全域函數類型

何時被觸發

參數

ajaxStart

在jQuery AJAX函數或命令發起時,但在XHR執行個體被建立之前

類型被設定為ajaxStart的全域回調資訊對象

ajaxSend

在XHR執行個體被建立之後,但在XHR執行個體被發送給伺服器之前

類型被設定為ajaxSend的全域回調資訊對象;XHR執行個體;$.ajax()函數使用的屬性

ajaxSuccess

在請求已從伺服器返回之後,並且響應包含成功狀態代碼

類型被設定為ajaxSuccess的全域回調資訊對象;XHR執行個體;$.ajax()函數使用的屬性

ajaxError

在請求已從伺服器返回之後,並且響應包含失敗狀態代碼

類型被設定為ajaxError的全域回調資訊對象;XHR執行個體;$.ajax()函數使用的屬性;被XHR執行個體返回的異常對象(如果有的話)

ajaxComplete

在請求已從伺服器返回之後,並且在任何已聲名的ajaxSuccess或ajaxError回呼函數已被調用之後

類型被設定為ajaxComplete的全域回調資訊對象;XHR執行個體;$.ajax()函數使用的屬性

ajaxStop

在所有其他AJAX處理完成以及任何其他適用的全域回呼函數已被調用之後

類型被設定為ajaxStop的全域回調資訊對象

看個例子

用戶端代碼:

<html xmlns="http://www.w3.org/1999/xhtml"><head><title></title><script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script><script type="text/javascript">$().ready(function () {  $('#selectNum').change(function () {    var idValue = $(this).val();    $('#show').html('');    //這裡可以把url地址改成一個錯誤地址如Server1.aspx測試錯誤情況?    $.post('Server1.aspx', { id: idValue }, function (data) { $('#show').html('success callback!<br/>' + data + '<br/>' + (new Date()).toLocaleTimeString() + ' ' + (new Date()).getMilliseconds())+'<br/>' })  });  $('#ajaxStart').ajaxStart(function () {    $(this).html('ajaxStart!<br/>'    + (new Date()).toLocaleTimeString() + ' ' + (new Date()).getMilliseconds())  })  $('#ajaxSend').ajaxSend(function (o, xhr, property) {    $(this).html('ajaxSend!<br/>'    + (new Date()).toLocaleTimeString() + ' ' + (new Date()).getMilliseconds())  })  $('#ajaxSuccess').ajaxSuccess(function (o, xhr, property) {    $(this).html('ajaxSuccess!<br/>'    + 'status:' + xhr.status + ' status info:' + xhr.statusText + '<br/>'    + (new Date()).toLocaleTimeString() + ' ' + (new Date()).getMilliseconds())  })  $('#ajaxError').ajaxError(function (o, xhr, property, err) {    $(this).html('ajaxError!<br/>'    + 'status:' + xhr.status + ' status info:' + xhr.statusText + '<br/>'    + (new Date()).toLocaleTimeString() + ' ' + (new Date()).getMilliseconds())  })  $('#ajaxComplete').ajaxComplete(function (o, xhr, property) {    $(this).html('ajaxComplete!<br/>'    + 'status:' + xhr.status + ' status info:' + xhr.statusText + '<br/>'    + (new Date()).toLocaleTimeString() + ' ' + (new Date()).getMilliseconds())  })  $('#ajaxStop').ajaxStop(function () {    $(this).html('ajaxStop!<br/>'    + (new Date()).toLocaleTimeString() + ' ' + (new Date()).getMilliseconds())  })})</script></head><body><select id="selectNum">  <option value="0">--Select--</option>  <option value="1">1</option>  <option value="2">2</option>  <option value="3">3</option>  </select><div id="show"></div><fieldset>  <legend>ajaxStart</legend>  <div id="ajaxStart"></div></fieldset><fieldset>  <legend>ajaxSend</legend>  <div id="ajaxSend"></div></fieldset><fieldset>  <legend>ajaxSuccess</legend>  <div id="ajaxSuccess"></div></fieldset><fieldset>  <legend>ajaxError</legend>  <div id="ajaxError"></div></fieldset><fieldset>  <legend>ajaxComplete</legend>  <div id="ajaxComplete"></div></fieldset><fieldset>  <legend>ajaxStop</legend>  <div id="ajaxStop"></div></fieldset></body></html>

服務端主要代碼:

protected void Page_Load(object sender, EventArgs e){  if (!Page.IsPostBack)  {    if (Request["id"] != null && !string.IsNullOrEmpty(Request["id"].ToString()))    {      Response.Write(GetData(Request["id"].ToString()));    }  }}protected string GetData(string id){  string str = string.Empty;  switch (id)  {    case "1":    str += "This is Number 1";    break;  case "2":    str += "This is Number 2";    break;  case "3":    str += "This is Number 3";    break;  default:    str += "Warning Other Number!";    break;  }  return str;}

運行程式,結果

我們也證實了全域函數的執行順序。

Demo下載

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.