什麼是 jQuery AJAX 事件?


Ajax 請求會產生許多您可以訂閱的不同事件。讓我們檢查兩種型別的事件。

有兩種型別的事件

本地事件

這些是您可以在 Ajax 請求物件中訂閱的回撥函式。

$.ajax({
   beforeSend: function(){
      // Handle the beforeSend event
   },
   complete: function(){
     // Handle the complete event
   }
   // ......
 });

全域性事件

這些事件會廣播到 DOM 中的所有元素,觸發任何可能正在監聽的處理程式。您可以像這樣監聽這些事件:

$("#loading").bind("ajaxSend", function(){
   $(this).show();
}).bind("ajaxComplete", function(){
   $(this).hide();
 });

可以透過傳遞全域性選項來停用特定 Ajax 請求的全域性事件,如下所示:

$.ajax({
   url: "test.html",
   global: false,
   // ...
});

這是完整的 Ajax 事件列表ajaxStartajaxStop 事件是與所有 Ajax 請求相關的事件。

  • ajaxStart (全域性事件) - 如果啟動了 Ajax 請求並且當前沒有其他 Ajax 請求正在執行,則會廣播此事件。
  • beforeSend (本地事件) - 此事件在啟動 Ajax 請求之前觸發,允許您修改 XMLHttpRequest 物件(如有需要,可以設定附加標頭)。
  • ajaxSend (全域性事件) - 此全域性事件也在請求執行之前觸發。
  • success (本地事件) - 只有在請求成功時(伺服器沒有錯誤,資料沒有錯誤)才會呼叫此事件。
  • ajaxSuccess (全域性事件) - 只有在請求成功時才會呼叫此事件。
  • error (本地事件) - 只有在請求發生錯誤時才會呼叫此事件(請求中永遠不會同時出現錯誤和成功回撥)。
  • ajaxError (全域性事件) - 此全域性事件的行為與本地 error 事件相同。
  • complete (本地事件) - 無論請求成功與否,都會呼叫此事件。即使對於同步請求,您也始終會收到 complete 回撥。
  • ajaxComplete (全域性事件) - 此事件的行為與 complete 事件相同,並且每次 Ajax 請求完成時都會觸發。
  • ajaxStop (全域性事件) - 如果沒有更多 Ajax 請求正在處理,則會觸發此全域性事件。

更新於:2020年2月17日

277 次瀏覽

啟動您的 職業生涯

完成課程後獲得認證

開始學習
廣告
© . All rights reserved.