Ajax会触发的事件有两种事件,一种是局部事件,一种是全局事件:
局部事件:通过$.ajax来调用并且分配。
- $.ajax({
- beforeSend: function(){
- // Handle the beforeSend event
- },
- complete: function(){
- // Handle the complete event
- }
- // ...
- });
全局事件,可以用bind来绑定,用unbind来取消绑定。
- $("#loading").bind("ajaxSend", function(){ //使用bind
- $(this).show();
- }).ajaxComplete(function(){ //直接使用ajaxComplete
- $(this).hide();
- });
但是,有的时候不希望用全局变量,这个时候让global:false
- $.ajax({
- url: "test.html",
- global: false,
- // ...
- });
他还有一些事件顺序:
ajaxStart 全局事件 开始新的Ajax请求,并且此时没有其他ajax请求正在进行。
beforeSend 局部事件 当一个Ajax请求开始时触发,在这里设置XHR对象。
ajaxSend 全局事件 请求开始前触发的全局事件
success 局部事件 请求成功时触发。当服务器没有返回错误,返回的数据也没有错误。
ajaxSuccess 全局事件 全局的请求成功
error 局部事件 仅当发生错误时触发。无法同时执行success和error两个回调函数。
ajaxError 全局事件 全局的发生错误时触发
complete 局部事件 不管请求成功还是失败,都能在请求完成时触发这个事件。
ajaxComplete 全局事件 全局的请求完成时触发
ajaxStop 全局事件 当没有Ajax正在进行中的时候,触发。