Ajax 事件
Ajax 请求会产生许多不同的事件,您可以订阅这些事件。以下是事件的完整列表以及它们的触发顺序。
有两种类型的事件
本地事件
这些是您可以在 Ajax 请求对象中订阅的回调函数,例如
1
2
3
4
5
6
7
8
9
|
|
全局事件
这些事件在 document
上触发,调用任何可能正在监听的处理程序。您可以像这样监听这些事件
$(document).on("ajaxSend", function(){ $("#loading").show(); }).on("ajaxComplete", function(){ $("#loading").hide(); });
可以通过传递全局选项来禁用特定 Ajax 请求的全局事件,例如
1
2
3
4
5
|
|
事件
以下是 Ajax 事件的完整列表,以及它们的触发顺序。缩进的事件会为每个 Ajax 请求触发(除非设置了全局选项)。ajaxStart 和 ajaxStop 事件是与所有 Ajax 请求相关的事件。
- ajaxStart (全局事件)
如果启动了 Ajax 请求并且当前没有其他 Ajax 请求正在运行,则会触发此事件。- beforeSend (本地事件)
此事件在启动 Ajax 请求之前触发,允许您修改 XMLHttpRequest 对象(如果需要,设置额外的标头)。 - ajaxSend (全局事件)
此全局事件也在请求运行之前触发。 - success (本地事件)
此事件仅在请求成功时调用(服务器没有错误,数据没有错误)。 - ajaxSuccess (全局事件)
此事件也仅在请求成功时调用。 - error (本地事件)
此事件仅在请求发生错误时调用(您永远不会在同一个请求中同时拥有错误和成功回调)。 - ajaxError (全局事件)
此全局事件的行为与本地错误事件相同。 - complete (本地事件)
无论请求成功与否,都会调用此事件。您将始终收到一个 complete 回调,即使对于同步请求也是如此。 - ajaxComplete (全局事件)
此事件的行为与 complete 事件相同,并且将在每次 Ajax 请求完成时触发。
- beforeSend (本地事件)
- ajaxStop (全局事件)
如果不再处理任何 Ajax 请求,则会触发此全局事件。