ajax触发很多事件。

有两种事件,一种是本地事件,另一种是全局事件。

本地事件:由$调用和分配。

复制代码代码如下所示:

$ ajax({

beforesend:函数(){

的beforesend事件 / /处理

},

完成:函数(){

完整事件句柄

}

…

});



全球事件可以绑定和解除绑定,用于取消绑定。这类似于鼠标点击 / / KeyUp事件等。但他可以通过每一个DOM元素。

复制代码代码如下所示:

$(#加载)。Bind(ajaxsend ),功能({ / /绑定

美元(这个);

(功能)(。ajaxcomplete)} { / / ajaxcomplete直接使用

美元(这个);

});



当然,您可以为不希望生成全局事件的Ajax请求设置全局:false。

复制代码代码如下所示:

$ ajax({

URL

全球:假,

…

});



事件的顺序如下:

ajaxstart全球事件

启动了一个新的Ajax请求,此时没有其他Ajax请求正在执行。

beforesend局部事件

当一个Ajax请求开始,它所引发的。如果你需要,你可以设置XHR对象。

ajaxsend全球事件

在请求开始之前触发的全局事件

成功的本地事件

请求是在请求成功时触发的,也就是说,服务器没有返回错误,返回的数据没有错误。

ajaxsuccess全球事件

全球成功要求

错误的地方活动

只有在发生错误时才触发。您不能同时执行成功和错误的两个回调函数。

当全球事件

错误触发的全局发生

完整的局部事件

无论您是请求成功还是失败,即使是同步请求,都可以在请求完成时触发此事件。

ajaxcomplete全球事件

全局请求完成触发器

ajaxstop全球事件

当没有Ajax正在进行时,触发器。

本地事件回调的参数清楚地写在文档中,这里没有描述它们。

在全球性事件,除了ajaxstart和ajaxstop,其他事件有3个参数

事件,XMLHttpRequest,ajaxoptions

首先是事件,二是XHR对象,第三个参数是最有用的,和参数当Ajax调用当时。

因为当,有第四个参数,这是通过thrownerror,只有当发生异常。

我们可以用ajaxoptions写一个全局Ajax事件。

如

复制代码代码如下所示:

$(#味精)。BeforeSend(功能(E,XHR,O){)

$(这)。Html(被要求+ o.url);

})。AjaxSuccess(功能(E,XHR,O){)

$(这)。Html(o.url +请求成功);

})。AjaxError(功能(E,XHR,O){)

$(这)。Html(o.url +请求失败);

});



对于这个例子,

通过这种方式,我们可以在某个地方轻松地显示当前的Ajax状态。

当然,之前,第三个参数是参数传递到Ajax,得到 /后/ / /负载getscript getJSON和其他方法基本上都是调用Ajax方法,所以ajaxoptions.url特性是有效的。

还有更多的例子。

如果您使用ajax调用,也可以传递自定义参数。

复制代码代码如下所示:

自定义参数

美元。Ajax({网址:test1。HTML

美元。Ajax({网址:test2。HTML

美元。Ajax({网址:4. HTML

美元。Ajax({网址:考试4. HTML



在这里,您可以得到自定义参数。

这可以用来区分不同的Ajax请求。

$(#味精)。BeforeSend(功能(E,XHR,O){)

$(这)。Html(被要求+ o.msg);

})。AjaxSuccess(功能(E,XHR,O){)

$(这)。Html(o.msg +请求成功);

})。AjaxError(功能(E,XHR,O){)

$(这)。Html(o.msg +请求失败);

});



最后,对于加载方法,还有其他单词。

其他简单的Ajax方法,如取得,后,getJSON,等他们回调函数都在成功回调成立。

而且只有加载集实际上是一个完整回调函数。

因此,在加载中回调函数应该有2个参数。

XMLHttpRequest和textstatus

但事实并非如此。

负载回调有三个参数

XMLHttpRequest.responseText, textStatus, XMLHttpRequest

所以,你可以在加载的回调中

确定电话被textstatus = =成功或textstatus = =错误成功。

或使用xmlhttprequest.status属性来判断它是否是200或404或其他。

在这一点上,我认为这是更先进的比普通得到 /后方法。它是不可能设置一个错误数每得到。但建立一个全球当也是一个不错的选择。