当前位置: 首页 > 文档资料 > jQuery 入门教程 >

AJAX Events

优质
小牛编辑
135浏览
2023-12-01

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,
   // ...
});

事件 (Events)

以下是Ajax事件的完整列表。 ajaxStart和ajaxStop事件是与所有Ajax请求相关的事件。

  • ajaxStart (Global Event)如果启动了Ajax请求并且当前没有其他Ajax请求正在运行,则会广播此事件。

  • beforeSend (Local Event)此事件在Ajax请求启动之前触发,允许您修改XMLHttpRequest对象(如果需要,可以设置其他标头)。

  • ajaxSend (Global Event)此全局事件也在请求运行之前触发。

  • success (Local Event)仅在请求成功时才调用此事件(服务器没有错误,数据没有错误)。

  • ajaxSuccess (Global Event)只有在请求成功时才会调用此事件。

  • error (Local Event)仅当请求发生错误时才会调用此事件(您永远不会同时出现错误和带有请求的成功回调)。

  • ajaxError (Global Event)此全局事件的行为与本地错误事件相同。

  • complete (Local Event)无论请求是否成功,都会调用此事件。 即使是同步请求,您也将始终收到完整的回调。

  • ajaxComplete (Global Event)此事件与complete事件的行为相同,并且每次Ajax请求完成时都会触发。

  • ajaxStop (Global Event)如果不再处理Ajax请求,则会触发此全局事件。