jquery中ajax的相关事件汇总
Jquery ajax事件分类
(一) 局部事件 local events
局部事件:在单个Ajax请求对象中绑定的事件,每个 Ajax 请求对象能够依据须要绑定自己的局部事件 。局部事件仅仅会被那个绑定该事件的 Ajax 对象触发,是属于单个 Ajax 对象的私有(即局部)事件。此类事件包含:beforeSend、complete、success、error。
$.ajax({
beforeSend: function(){
// Handle the beforeSend event
},
complete: function(){
// Handle the complete event
}
// ......
});
(二) 全局事件 global events
全局事件:除了上面说的局部事件外,跟 Ajax 相关的 jquery 事件还有一类事件——全局事件。如 ajaxSend/ajaxComplete/ajaxError/ajaxSuccess/ajaxStart/ajaxStop。不难发现全局事件与局部事件的命名差别。全局事件的名称都已 ajax开头。
全局事件,顾名思义,“全局”的意思指的是整个html文档中全部 Ajax 请求对象公有的事件,这一类事件不是单个 Ajax 请求私有的事件,所以不能在某个 Ajax 请求中定义这类事件的处理函数。那么这些全局事件的处理函数在哪里绑定呢?——绑在 document 对象上。
$(document).bind("ajaxSend", function(){
$("#loading").show();
}).bind("ajaxComplete", function(){
$("#loading").hide();
});
(1)全局事件细化分类
全局事件中又分为2类不同的事件:
1、ajaxStart/ajaxStop的触发条件是由文档中的全部Ajax 对象共同影响的。
ajaxStart触发时刻:jquery官网的解释是“文档中某个Ajax 请求已经開始(started),以此同一时候没有不论什么其它正在执行(running)的Ajax 请求”;
这意味着:
假设第一个 Ajax 请求还没有结束执行时又開始了还有一个 Ajax 请求。那么 ajaxStart事件仅仅在第一个 Ajax 请求開始时触发一次;
假设第一个 Ajax 请求已经结束执行,之后又開始了还有一个 Ajax 请求。那么 ajaxStart事件将在第一个请求開始时触发一次,在第二个请求開始时再触发一次。
ajaxStop触发时刻:”当前执行的 Ajax 请求都已结束”;
这意味着:该事件触发时文档中一定没有正在执行的 Ajax 请求。这个事件可能会被触发多次。
2、ajaxSend/ajaxComplete/ajaxError/ajaxSuccess的触发条件则不须要文档中全部 Ajax请求共同影响,它们的触发条件非常easy:文档中每个ajax 请求都会触发这些事件。
( 2 ) 单个 Ajax 对象怎样屏蔽全局事件?
既然全局事件的触发会受到文档中全部 Ajax 请求对象的影响,那么当我们希望某个 Ajax 请求不要触发全局事件时。该怎么做呢?——仅仅须要将这个 Ajax 对象的 global 參数设置为 false。
$.ajax({
url: "test.html",
global: false,
// ...
});
Jquery ajax事件触发顺序和触发条件
下面排列顺序为ajax 事件的触发顺序(从先到后)
1、ajaxStart (Global Event)
This event is triggered if an Ajax request is started and no other Ajax requests are currently running.
2、beforeSend (Local Event)
This event, which is triggered before an Ajax request is started, allows you to modify the XMLHttpRequest object (setting additional headers, if need be.)(//Ajax对象已经产生(started)。但还没有真正发起网络请求。此事件经常使用来改动 Ajax 对象的请求头部。当此事件回调函数 return false 时,该ajax请求将被取消)
3、ajaxSend (Global Event)
This global event is also triggered before the request is run.
4、success (Local Event)
This event is only called if the request was successful (no errors from the server, no errors with the data).(//成功时即 textStatus=’success/notmodified/nocontent’时触发。回调函数中的 data 是 jquery 依据 dataFilter和 dataType进行处理后的数据。
success值通常是一个 function,但也能够是一个function 数组。数组中的全部 function 将按顺序调用 )
5、ajaxSuccess (Global Event)
This event is also only called if the request was successful.
6、error (Local Event)
This event is only called if an error occurred with the request (you can never have both an error and a success callback with a request).(//textStatus=’error/timeout/abort/parseerror’时调用,error值通常是一个 function,但也能够是一个function 数组,数组中的全部 function 将按顺序调用 )
7、ajaxError (Global Event)
This global event behaves the same as the local error event.
8、complete (Local Event)
This event is called regardless of if the request was successful, or not. You will always receive a complete callback, even for synchronous requests.(//无论请求success还是error,无论请求是同步还是异步,都会触发该事件。此事件处理函数中的 textStatus參数可能取值为:”success”, “notmodified”, “nocontent”, “error”, “timeout”, “abort”, or “parsererror”。complete值通常是一个 function,但也能够是一个function 数组,数组中的全部 function 将按顺序调用 )
9、ajaxComplete (Global Event)
This event behaves the same as the complete event and will be triggered every time an Ajax request finishes.
10、ajaxStop (Global Event)
This global event is triggered if there are no more Ajax requests being processed.
jquery中ajax的相关事件汇总的更多相关文章
- jQuery中Ajax事件beforesend及各参数含义1
jQuery中Ajax事件beforesend及各参数含义 转自:http://blog.sina.com.cn/s/blog_609f9fdd0100wprz.html Ajax会触发很多事件. 有 ...
- jquery中ajax的使用
Java软件开发中,后台中我们可以通过各种框架,像SSH等进行对代码的封装,方便我们对Java代码的编写,例如,Struts,SpringMVC对从前台到action的流程进行封装控制,使我们只需要进 ...
- 关于Jquery中ajax方法data参数用法的总结
data 发送到服务器的数据.将自动转换为请求字符串格式.GET 请求中将附加在 URL 后.查看 processData 选项说明以禁止此自动转换.必须为 Key/Value 格式.如果为数组,jQ ...
- [转]Jquery中AJAX错误信息调试参考
下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求 ...
- 转载 Jquery中AJAX参数详细介绍
Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求方式 ...
- Jquery中AJAX参数详细(1)-转
http://www.cnblogs.com/qiufuwu618/archive/2012/12/20/2826190.html Jquery中AJAX参数详细列表: 参数名 类型 描述 url S ...
- jquery中ajax使用error调试错误的方法
JQuery使我们在开发Ajax应用程序的时候提高了效率,减少了许多兼容性问题,我们在Ajax项目中,遇到ajax异步获取数据出错怎么办,我们可以通过捕捉error事件来获取出错的信息. jquery ...
- Jquery中AJAX参数详细介绍
Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求方式 ...
- 转: jquery中ajax回调函数使用this
原文地址:jquery中ajax回调函数使用this 写ajax请求的时候success中代码老是不能正常执行,找了半天原因.代码如下 $.ajax({type: 'GET', url: " ...
随机推荐
- Eclipse运行Maven的SpringMVC项目Run on Server时出现错误:Error configuring application listener of class org.springframework.web.context.ContextLoaderListener的问题解决
错误: 严重: Error configuring application listener of class org.springframework.web.context.ContextLoade ...
- NHibernate 操作视图 第十三篇
在NHibernate中,可以把视图当表一样操作,只需要记住一点就是,视图是只读的,因此映射实体的setter应该改为protected. 新建一个视图如下: 持久化类: public class C ...
- 【java】java获取对象属性类型、属性名称、属性值
java获取对象属性类型.属性名称.属性值 获取属性 修饰符:[在Field[]循环中使用] String modifier = Modifier.toString(fields[i].getModi ...
- Unity3d通用工具类之定时触发器
时隔多日,好不容易挤出点时间来写写博文.不容易,请送我几朵红花,点个赞也行. 今天呢,我们主要来扩展下通用工具类==>定时触发器. 顾名思义,所谓的定时触发器,就是告诉程序在过多长时间后,我要执 ...
- Openshift template的使用
1.template的定义 官方对template的定义是 A template describes a set of objects that can be parameterized and pr ...
- pgfplots画二维图真的很方便,多例比较
%直接PDFLATEX编译即可\documentclass[border=1mm]{standalone}\usepackage{tkz-euclide,pgfplots}\begin{documen ...
- iOS:quartz2D绘图小项目(涂鸦画板)
介绍:学了quartz2D的绘图知识后,我根据它的一些功能制作了一个小项目:涂鸦画板. 功能:绘制各种图形,还可以选取相册上的照片做涂鸦,然后保存到相册中.其中,还包括功能有:颜色的选取.线宽的选取. ...
- POJ 1275-Cashier Employment(差分约束系统)
题目地址:id=1275">POJ 1275 题意: 给出一个超市24小时各须要R[i]个雇员工作,有N个雇员能够雇佣.他们開始工作时间分别为A[i],求须要的最少的雇员人数. 思路: ...
- (转)NIO 内存映射文件
内存映射文件 I/O 是一种读和写文件数据的方法,它可以比常规的基于流或者基于通道的 I/O 快得多. 内存映射文件 I/O 是通过使文件中的数据神奇般地出现为内存数组的内容来完成的.这其初听起来似乎 ...
- Windows注册表中修改CMD默认路径
一.开启注册表“win键+R键”并输入regedit 二.在注册表项 HKEY_CURRENT_USER\ Software\ Microsoft\ Command Processor 新建一个项,并 ...