博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery之Ajax--全局Ajax事件处理器
阅读量:5352 次
发布时间:2019-06-15

本文共 3625 字,大约阅读时间需要 12 分钟。

1.这些方法用于注册事件处理器,用来处理页面上的任何 Ajax 请求,当某些事件触发后,这些事件处理器被调用。如果中的 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( "
  • 请求完成。
  • " ); });

    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( "
  • Error requesting page " + settings.url + "
  • " );});

    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( "
  • Starting request at " + settings.url + "
  • " );});

    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( "
  • Successful Request!
  • " ); });

     

    转载于:https://www.cnblogs.com/ziyoublog/p/9449005.html

    你可能感兴趣的文章
    Linux常用命令(十)
    查看>>
    实验吧之这就是一个坑
    查看>>
    Linux常用命令(十二)
    查看>>
    Linux常用命令(十三)
    查看>>
    Linux常用命令(十五)
    查看>>
    Linux常用命令(十四)
    查看>>
    Linux常用命令(十七)
    查看>>
    Linux常用命令(十六)
    查看>>
    Linux常用命令(二十四)
    查看>>
    4种java定时器
    查看>>
    Vue.js 教程
    查看>>
    linux 设置网卡
    查看>>
    hive 语法 case when 语法
    查看>>
    Ajax:js读取txt内容(json格式内容)
    查看>>
    Task 7 买书最低价格问题
    查看>>
    Selenium3+python自动化007-警告框
    查看>>
    html5 相同形状的图形进行循环
    查看>>
    springboot中文官方文档
    查看>>
    lamdba表达式
    查看>>
    ThreadLocal实现线程范围内共享
    查看>>