jQuery之Ajax--全局Ajax事件处理器
1.这些方法用于注册事件处理器,用来处理页面上的任何 Ajax 请求,当某些事件触发后,这些事件处理器被调用。如果jQuery.ajaxSteup()中的 global
属性被设置为 true
(这也是默认设置),那么,每个 Ajax 请求都会触发全局事件。注意:全局事件绝对不会被跨域(cross-domain)脚本或 JSONP 请求触发,和 global
属性的设置毫无关系。
2. .ajaxComplete()方法:每当一个Ajax请求完成,jQuery就会触发ajaxComplete
事件,在这个时间点所有处理函数会使用.ajaxComplete()
方法注册并执行。如果global属性被设置为false,当完成Ajax请求后不会调用这个方法。
无论哪一个Ajax请求被完成,所有ajaxComplete
处理函数都将被执行。如果我们必须区分不同的请求,我们可以使参数传递给这个处理函数。 他是通过事件对象, XMLHttpRequest
对象和设置对象中使用的请求,做每一次ajaxComplete
处理器执行的。举个例子,我们能限制我们的回调到只处理事件处理某一特定的URL:
$(document).ajaxComplete(function(event, xhr, settings) {
if ( settings.url === "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxComplete handler. The result is " +
xhr.responseHTML );
}
});
当Ajax请求完成后显示一个信息:
$(document).ajaxComplete(function(event,request, settings) {
$( "#msg" ).append( "<li>请求完成。</li>" );
});
3. .ajaxError()方法:每当一个Ajax请求出错时,jQuery就会触发ajaxError
事件,在这个时间点所有处理函数会使用.ajaxError()
方法注册并执行。注意:这里的handler处理器调用跨域的脚本和跨域的JSONP请求。如果global属性被设置为false,当完成Ajax请求失败后不会调用这个方法。
无论哪一个Ajax请求被完成,所有ajaxError
处理器都将被执行。如果我们必须区分不同的请求,我们可以使参数传递给这个处理器。 他是通过事件对象、 XMLHttpRequest
对象和设置对象中使用的请求,每次ajaxError
处理器执行,它传递事件对象,jqXHR
对象(在 jQuery 1.5之前是XHR
对象),和用来创建请求的设置(settings)对象。如果请求失败,因为JavaScript抛出一个异常,并且作为第四个参数的异常对象被传递给处理函数。举个例子,我们能限制我们的回调到只处理事件处理某一特定的URL:
$( document ).ajaxError(function(event, jqxhr, settings, exception) {
if ( settings.url == "ajax/missing.html" ) {
$( "div.log" ).text( "Triggered ajaxError handler." );
}
});
当Ajax请求失败后显示一个信息:
$(document).ajaxError(function(event, request, settings) {
$( "#msg" ).append( "<li>Error requesting page " + settings.url + "</li>" );
});
4. .ajaxSend()方法:每当一个Ajax请求即将发送,jQuery就会触发ajaxSend
事件,在这个时间点所有处理函数都会使用.ajaxSend()
方法注册并执行。如果global
选项设置为false
,调用$.ajax()
或$.ajaxStep()
方法将不会被触发。
无论哪一个Ajax请求被发送,所有ajaxSend
处理器都将被执行。如果我们必须区分不同的请求,我们可以使参数传递给这个处理器。 每次ajaxSend
处理器执行,它传递事件对象,jqXHR
对象(在 jQuery 1.4中是XMLHttpRequest
对象),和用来创建请求的设置(settings object)对象。如果请求失败,因为JavaScript抛出一个异常,并且作为第四个参数的异常对象被传递给处理程序。举个例子,我们能限制我们的回调到只处理事件处理某一特定的URL:
$(document).ajaxSend(function(event, jqxhr, settings) {
if ( settings.url == "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxSend handler." );
}
});
当Ajax请求即将发送前显示一个信息:
$(document).ajaxSend(function(event, request, settings) {
$( "#msg" ).append( "<li>Starting request at " + settings.url + "</li>" );
});
5. .ajaxStart()方法:每当一个Ajax请求即将发送,jQuery检查是否有任何其他响应过程中的Ajax请求(注:未完成的请求)。如果没有检查到,jQuery就会触发ajaxStart
事件,在这个时间点所有处理函数都会使用.ajaxStart()
方法注册并执行。如果global
选项设置为false
,调用$.ajax()
或$.ajaxStep()
方法将不会被触发。
当Ajax请求开始发送时显示一个信息 (没有一个Ajax请求是已经激活的):
$(document).ajaxStart(function() {
$( "#loading" ).show();
});
6. .ajaxStop()方法:每当一个Ajax请求完成,jQuery检查是否有任何其他响应过程中的Ajax请求(注:未完成的请求)。如果都执行完成,jQuery就会触发ajaxStop
事件,在这个时间点所有处理函数都会使用.ajaxStop()
方法注册并执行。如果一个未处理完成的Ajax请求用beforeSend
回调函数返回false
取消,ajaxStop
事件也被触发。如果global
选项设置为false
,调用$.ajax()
或$.ajaxStep()
方法将不会被触发。
在Ajax请求停止后隐藏加载信息:
$(document).ajaxStop(function() {
$( "#loading" ).hide();
});
7. .ajaxSuccess()方法:每当一个Ajax请求成功完成,jQuery就会触发ajaxSuccess
事件,在这个时间点所有处理函数都会使用.ajaxSuccess()
方法注册并执行。如果global
选项设置为false
,调用$.ajax()
或$.ajaxStep()
方法将不会被触发。
无论哪一个Ajax请求被完成,所有ajaxSuccess
处理器都将被执行。如果我们必须区分不同的请求,我们可以使参数传递给这个处理器。 他是通过事件对象、 XMLHttpRequest
对象和设置对象中使用的请求,做每一次ajaxSuccess
处理器执行的。 举个例子,我们能限制我们的回调到只处理事件处理某一特定的URL:
$(document).ajaxSuccess(function(event, xhr, settings) {
if ( settings.url == "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxSuccess handler. The ajax response was: " +
xhr.responseText );
}
});
当Ajax请求成功完成时,显示一个信息:
$(document).ajaxSuccess(function(event, request, settings) {
$( "#msg" ).append( "<li>Successful Request!</li>" );
});
最新文章
- 《简明python教程》笔记一
- AWS-CDH5.5安装 CM配置节点
- tomcat 假死现象(转)
- BZOJ4034——[HAOI2015]T2
- C++中 容易忽视的const 修饰符
- PHP获得两个绝对路径的相对路径
- C#--判断当前是否是移动设备和设备的型号
- HF Code Designer 代码生成器
- bzoj1103
- Java API设计CheckList
- 我的第一个python web开发框架(5)——开发前准备工作(了解编码前需要知道的一些常识)
- JQuery 初探
- Vim-latex 插件 的安装
- [python爬虫]Requests-BeautifulSoup-Re库方案--Requests库介绍
- BZOJ.4402.Claris的剑(组合 计数)
- Python中的MySQLConnector使用介绍
- Qt读写ini文件
- html5粒子连线
- v1版本
- 如何利用JUnit开展一个简单的单元测试(测试控制台输出是否正确)
热门文章
- ArcGIS Server的Tile的松散型存储(Exploded)
- SharePoint 2013 对二进制大型对象(BLOB)进行爬网
- Web AppBuilder Widget使用共享类库的方式
- IOS开发基础知识--碎片18
- UITextView 开始编辑时,文字没有左上角对齐解决办法 tableview整体上移
- iOS--KVO的概述与使用
- Tableview中Dynamic Prototypes动态表的使用
- 从tabBarController的一个item上的控制器跳转到另一个item上的控制器
- MongoDB安装及配置成服务
- 为什么忘记commit也会造成select查询的性能问题