1.這些方法用於註冊事件處理器,用來處理頁面上的任何 Ajax 請求,當某些事件觸發後,這些事件處理器被調用。若是jQuery.ajaxSteup()中的 global
屬性被設置爲 true
(這也是默認設置),那麼,每一個 Ajax 請求都會觸發全局事件。注意:全局事件絕對不會被跨域(cross-domain)腳本或 JSONP 請求觸發,和 global
屬性的設置毫無關係。html
2. .ajaxComplete()方法:每當一個Ajax請求完成,jQuery就會觸發ajaxComplete
事件,在這個時間點全部處理函數會使用.ajaxComplete()
方法註冊並執行。若是global屬性被設置爲false,當完成Ajax請求後不會調用這個方法。jquery
不管哪個Ajax請求被完成,全部ajaxComplete
處理函數都將被執行。若是咱們必須區分不一樣的請求,咱們可使參數傳遞給這個處理函數。 他是經過事件對象, XMLHttpRequest
對象和設置對象中使用的請求,作每一次ajaxComplete
處理器執行的。舉個例子,咱們能限制咱們的回調到只處理事件處理某一特定的URL:ajax
$(document).ajaxComplete(function(event, xhr, settings) {
if ( settings.url === "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxComplete handler. The result is " +
xhr.responseHTML );
}
});
當Ajax請求完成後顯示一個信息:跨域
$(document).ajaxComplete(function(event,request, settings) { $( "#msg" ).append( "<li>請求完成。</li>" ); });
3. .ajaxError()方法:每當一個Ajax請求出錯時,jQuery就會觸發ajaxError
事件,在這個時間點全部處理函數會使用.ajaxError()
方法註冊並執行。注意:這裏的handler處理器調用跨域的腳本和跨域的JSONP請求。若是global屬性被設置爲false,當完成Ajax請求失敗後不會調用這個方法。app
不管哪個Ajax請求被完成,全部ajaxError
處理器都將被執行。若是咱們必須區分不一樣的請求,咱們可使參數傳遞給這個處理器。 他是經過事件對象、 XMLHttpRequest
對象和設置對象中使用的請求,每次ajaxError
處理器執行,它傳遞事件對象,jqXHR
對象(在 jQuery 1.5以前是XHR
對象),和用來建立請求的設置(settings)對象。若是請求失敗,由於JavaScript拋出一個異常,而且做爲第四個參數的異常對象被傳遞給處理函數。舉個例子,咱們能限制咱們的回調到只處理事件處理某一特定的URL:dom
$( document ).ajaxError(function(event, jqxhr, settings, exception) {
if ( settings.url == "ajax/missing.html" ) {
$( "div.log" ).text( "Triggered ajaxError handler." );
}
});
當Ajax請求失敗後顯示一個信息:ide
$(document).ajaxError(function(event, request, settings) { $( "#msg" ).append( "<li>Error requesting page " + settings.url + "</li>" ); });
4. .ajaxSend()方法:每當一個Ajax請求即將發送,jQuery就會觸發ajaxSend
事件,在這個時間點全部處理函數都會使用.ajaxSend()
方法註冊並執行。若是global
選項設置爲false
,調用$.ajax()
或$.ajaxStep()
方法將不會被觸發。函數
不管哪個Ajax請求被髮送,全部ajaxSend
處理器都將被執行。若是咱們必須區分不一樣的請求,咱們可使參數傳遞給這個處理器。 每次ajaxSend
處理器執行,它傳遞事件對象,jqXHR
對象(在 jQuery 1.4中是XMLHttpRequest
對象),和用來建立請求的設置(settings object)對象。若是請求失敗,由於JavaScript拋出一個異常,而且做爲第四個參數的異常對象被傳遞給處理程序。舉個例子,咱們能限制咱們的回調到只處理事件處理某一特定的URL:url
$(document).ajaxSend(function(event, jqxhr, settings) {
if ( settings.url == "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxSend handler." );
}
});
當Ajax請求即將發送前顯示一個信息:spa
$(document).ajaxSend(function(event, request, settings) { $( "#msg" ).append( "<li>Starting request at " + settings.url + "</li>" ); });
5. .ajaxStart()方法:每當一個Ajax請求即將發送,jQuery檢查是否有任何其餘響應過程當中的Ajax請求(注:未完成的請求)。若是沒有檢查到,jQuery就會觸發ajaxStart
事件,在這個時間點全部處理函數都會使用.ajaxStart()
方法註冊並執行。若是global
選項設置爲false
,調用$.ajax()
或$.ajaxStep()
方法將不會被觸發。
當Ajax請求開始發送時顯示一個信息 (沒有一個Ajax請求是已經激活的):
$(document).ajaxStart(function() {
$( "#loading" ).show();
});
6. .ajaxStop()方法:每當一個Ajax請求完成,jQuery檢查是否有任何其餘響應過程當中的Ajax請求(注:未完成的請求)。若是都執行完成,jQuery就會觸發ajaxStop
事件,在這個時間點全部處理函數都會使用.ajaxStop()
方法註冊並執行。若是一個未處理完成的Ajax請求用beforeSend
回調函數返回false
取消,ajaxStop
事件也被觸發。若是global
選項設置爲false
,調用$.ajax()
或$.ajaxStep()
方法將不會被觸發。
在Ajax請求中止後隱藏加載信息:
$(document).ajaxStop(function() {
$( "#loading" ).hide();
});
7. .ajaxSuccess()方法:每當一個Ajax請求成功完成,jQuery就會觸發ajaxSuccess
事件,在這個時間點全部處理函數都會使用.ajaxSuccess()
方法註冊並執行。若是global
選項設置爲false
,調用$.ajax()
或$.ajaxStep()
方法將不會被觸發。
不管哪個Ajax請求被完成,全部ajaxSuccess
處理器都將被執行。若是咱們必須區分不一樣的請求,咱們可使參數傳遞給這個處理器。 他是經過事件對象、 XMLHttpRequest
對象和設置對象中使用的請求,作每一次ajaxSuccess
處理器執行的。 舉個例子,咱們能限制咱們的回調到只處理事件處理某一特定的URL:
$(document).ajaxSuccess(function(event, xhr, settings) {
if ( settings.url == "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxSuccess handler. The ajax response was: " +
xhr.responseText );
}
});
當Ajax請求成功完成時,顯示一個信息:
$(document).ajaxSuccess(function(event, request, settings) { $( "#msg" ).append( "<li>Successful Request!</li>" ); });