jQuery之Ajax--全局Ajax事件处理器
2018-08-09 15:03
453 查看
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>" ); });
相关文章推荐
- Jquery表单序列化和AJAX全局事件
- jQuery读书笔记---jQuery中Ajax--序列化元素、Ajax全局事件
- 6.7: jQuery中的Ajax全局事件(*)
- jquery全局ajax参数详细执行分析-$.ajax竟然可以这样用!
- jquery JavaScript ajax() post() get()无法改变全局变量的值
- jQuery全局ajax Error
- [JS]JQuery中使用Ajax赋值给全局变量异常解决方案
- jquery的ajax全局事件详解
- JQuery中ajax的回调函数内给全局变量赋值
- 【jQuery】使用ajaxSetup()方法设置全局Ajax默认选项
- jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法
- jQuery.ajaxSetup() 方法设置全局 AJAX 默认选项。
- JQuery中使用Ajax赋值给全局变量异常解决方案
- 锋利的jQuery读书笔记---jQuery中Ajax--序列化元素、Ajax全局事件
- jquery的ajax全局事件详解
- jquery的ajax全局事件详解
- jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
- JQuery中使用Ajax赋值给全局变量异常的解决方法
- 在springMVC+mybatis+Ajax+JSON+jQuery easyui的项目中,自定义全局异常处理器
- jquery 全局AJAX事件使用代码