jquery之利用ajax与服务器交谈(完全控制ajax请求之全局函数)
----------
jquery还允许我们把函数附加到特定的DOM元素。这些函数在Ajax请求处理的不同阶段或在请求最终成功或失败时将被触发。
例如,为了把函数附加到用来显示错误消息的,id为errorConsole的元素上,编写:
在任何Ajax请求失败的事件中,函数reportError都将被调用。
当这个或任何其他全局函数被调用时,传递给回调函数的第一个参数由javascript的Object实例构成,该实例带有以下两个属性:
1.type : 包含全局函数的类型的字符串,如ajaxError;
2.target : DOM元素(被附加了全局函数)的引用。在前面示例中,那就是id为errorConsole的元素。
我们把这个构造称为全局回调信息对象。一些全局函数类型被传递附加参数,这个共同的第一个参数可以用来标识什么全局函数类型触发了回调函数以及全局函数被附加到哪一个元素上。
用来附加全局函数的命令为: ajaxStart(),ajaxSend(),ajaxSuccess(),ajaxError(),ajaxComplete()和ajaxStop().因为用来附加这些函数类型的任何一个命令的语法都是一致的,所以在一个语法描述框内一起加以说明。
===
Ajax全局函数语法:
ajaxStart(callback)
ajaxSend(callback)
ajaxSuccess(callback)
ajaxError(callback)
ajaxComplete(callback)
ajaxStop(callback)
把传入的回调函数附加到所有匹配元素上,一旦到达Ajax请求处理的指定时刻就触发回调函数。
参数
callback (函数)将被附加的回调函数。
返回
包装集
===
这些全局回调函数的每个都在ajax请求的处理期间的特定时刻被触发,或者根据响应状态有条件地触发,假定全局函数已经为ajax请求而启用。那么下表每一个全局回调函数类型何时被触发以及什么参数被传递给全局回调函数。
ajaxStart :
触发时间 : 在jquery Ajax函数或命令发起时,但在XHR实例被创建之前
参数 : 类型被设置为ajaxStart的全局回调信息对象
ajaxSend :
触发时间 :在XHR实例被创建之后,但在XHR实例被发送给服务器之前
参数 :类型被设置为ajaxSend的全局回调信息对象;XHR实例;$.ajax()函数使用的属性
ajaxSuccess :
触发时间 :在请求已从服务器返回之后,并且响应包含成功状态码
叁数 : 类型被设置为ajaxSuccess的全局回调信息对象;XHR实例;$.ajax()函数使用的属性
ajaxError :
触发时间 :在请求已从服务器返回之后,并且响应包含失败状态码
参数 : 类型被设置为ajaxError的全局回调信息对象;XHR实例;$.ajax()函数使用的属性;被XHR实例返回的异常对象
ajaxComplete :
触发时间 :在请求已从服务器返回之后,并且在任何已声明的ajaxSuccess或ajaxError回调函数已被调用之后
参数 :类型被设置为ajaxComplete的全局回调信息对象;XHR实例;$.ajax()函数使用的属性
ajaxStop :
触发时间 :在所有其他ajax处理完成以及任何其他适用的全局回调函数已被调用之后
参数 :类型被设置为ajaxStop的全局回调信息对象