什麼是 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 事件列表。`ajaxStart` 和 `ajaxStop` 事件是與所有 Ajax 請求相關的事件。

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

更新於:2020年2月17日

277 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

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