https://www.cnblogs.com/RachelChen/p/5433881.html

全局ajax事件

 

必须当页面上存在任何ajax请求的时候都将触发这些特定的全局ajax处理函数。

如果在jQuery.ajaxSetup()中的global属性设置成true,那么这些全局函数将会在每一个ajax上面都触发,这正是默认值。

注意:

1.全局事件永远不会再跨域的脚本中运行,也不会再JSONP请求中运行。

2.在jQuery1.9以上,所有的全局ajax函数必须绑定扫到document上,也就是$(document).事件

3.只有在$.ajax()亦或$.ajaxSetup()中的globle设置成true才能使用ajax全局函数,false将不能使用。

针对每一个请求(per request)

$.ajaxComplete()

例子:

HTML代码:

  1. <div class="trigger">Trigger</div>
  2. <div class="result"></div>
  3. <div class="log"></div>

jquery代码:

  1. $( document ).ajaxComplete(function() {
  2.   $( ".log" ).text( "Triggered ajaxComplete handler." );
  3. });
  4. $( ".trigger" ).click(function() {
  5.   $( ".result" ).load( "ajax/test.html" );
  6. });

当用户点击class=trigger的元素的时候,加载html文件,请求完成之后class=log元素上显示信息。

无论什么Ajax请求完成,都将触发ajaxComplete事件,所以,你可以如下进行判断

  1. $( document ).ajaxComplete(function( event, xhr, settings ) {
  2. if ( settings.url === "ajax/test.html" ) {
  3. $( ".log" ).text( "Triggered ajaxComplete handler. The result is " +
  4. xhr.responseText );
  5. }
  6. });

语法形式

  1. $(document).ajaxComplete(function(event,xhr,options))
Parameter Description
function(event,xhr,options) 必须,指定当请求完成之后执行的函数
Additional parameters:

  • event - 事件对象event
  • xhr - XMLHttpRequest对象
  • options - 在AJAX request中使用的参数

所以上面进行指定ajax判断的时候使用的setting,也就是ajax request传递的对象,其中含有url属性,如果传递的url和需要判断的指定的url一样,则进行处理。

$.ajaxError()

  1. $(document).ajaxError(function(event,xhr,options,exc))
Parameter Description
function(event,xhr,options,exc) 必须,指定请求失败后运行的函数 
Additional parameters:

  • event - 事件对象event
  • xhr - XMLHttpRequest对象
  • options - 在ajax 请求时使用过得参数
  • exc - 错误对象

当ajaxError事件被触发的时候,不管ajax请求是否完成。

每次执行ajaxerror事件的时候,传递了event对象,jqXHR对象(jQuery1.5之前是XHR对象),和用于请求的settings对象。

当HTTP error发生,第四个参数(thownError)接受了HTTP的状态的文本部分,例如“Not Found”亦或“Internal Server Error”

to restrict the error callback to only handling events dealing with a particular URL:

ajaxSend()

send()发送的时候发触发

ajaxSuccess()是请求成功时触发,注意和ajaxComplete不同的是,ajaxComplete是不管请求失败还是成功,只要完成了就执行。

 

针对一批请求

 

ajaxStart(),ajaxStop()

是针对文本中所有的ajax请求的,当第一个ajax请求发送时触发ajaxStart()事件,当最后一个ajax请求完成时,触发ajaxStop()事件,不同的是,ajaxSend()和ajaxComplete是针对文本中每一次的ajax请求的。

所以如果你在文本中一次使用了3个请求,ajaxStart()会在第一个请求发起时触发,ajaxStop()会在最后一个请求结束时触发,所以它们常常组合用于显示loading等待框等。因为他们处理的是一群ajax请求,所以它们的回调函数中没有任何参数

  1. .ajaxStart( handler() )
  2. .ajaxStop( handler() )

随机推荐

  1. kubernetes上安装MongoDB-3.6.5集群副本集方式

    一.安装部署: 想直接一步创建集群的小伙伴直接按以下步骤安装(再往后是记录自己出过的错): 1.生成docker镜像: docker build -t 144.202.127.156/library/ ...

  2. Dom与Bom,增删改查

    对Web标准的理解:web标准是由一系列标准组合而成的,页面有三个部分组成:结构,表现和行为.因而web标准即由结构化标准语言主要有 xml和xhtml,表现标准语言css,行为标准主要包括对象模型( ...

  3. GitHub上最热门的11款开源安全工具

    恶意软件分析.渗透测试.计算机取证——GitHub托管着一系列引人注目的安全工具.足以应对各类规模下计算环境的实际需求.  作为开源开发领域的基石,“所有漏洞皆属浅表”已经成为一条着名的原则甚至是信条 ...

  4. 使用Xib创建自定义视图(不是cell)时需要注意的问题

    开发项目过程中,有些地方不免会用到Xib来提高开发效率,如果你的手速够快,写代码建视图,我并不反对这样做.因为我以前也是纯手写代码开发. 进入正题,Xib好用,但是这些下面这些问题需要注意一下. 问题 ...

  5. NodeJS NPM HTTPS

    npm config set registry http://registry.npmjs.org/

  6. Web前端页面的浏览器兼容性测试心得(三)总结一些IE8兼容问题的解决方案

    由于IE8不支持HTML5,而它又是Win7的默认浏览器,我们即使讨厌它,在这几年却也拿它没办法. 最近做了个需要兼容IE8的项目,不可避免地用了HTML5+CSS3,甚至canvas和svg,做兼容 ...

  7. python requests的使用说明

    #GET参数实例 requests.get('http://www.dict.baidu.com/s', params={'wd': 'python'}) #或 url = 'http://www.b ...

  8. 谷歌技术"三宝"之BigTable(转)

    原文地址:   http://blog.csdn.net/opennaive/article/details/7532589 2006年的OSDI有两篇google的论文,分别是BigTable和Ch ...

  9. HBuilder android 打包指南(V客学院技术分享)

    前提:确保配置文件(manifest.json)已配置完,没有异常. 打包选项如下: Android 包名 :在Android系统中是判断一个App的唯一标识,不同的App可以有同样的名字,但是它的包 ...

  10. linux下 安装php的gettext模块

    安装php的模块有两种方式: 一.重新编译php,加上--with-gettext 二.动态安装 现在说下第二个动态安装 1.下载同版本的php原包,解压后进入ext目录,目录下便是模块 2.进入ge ...