本文介绍jQuery中Ajax的async参数默认值为true(异步),若需确保一个Ajax请求完全执行后再发起下一个,应将async设置为false。文章详细列出了$.ajax方法中从ajaxStart到ajaxStop的完整事件触发顺序,包括全局事件与局部回调的执行逻辑。
jQuery Ajax同步与异步配置
jQuery库中的Ajax功能默认采用异步模式,即async参数默认为true。如果业务逻辑要求必须等待前一个Ajax请求完全结束后再执行后续的Ajax请求,可以通过将async参数设置为false来启用同步模式。
具体实现代码如下:
function TestAjax()
{
var UserName = $("#txtUserName").val();
$.ajax({
url:"AjaxCheckUserName.htm",
async:false,
success:function(data){
alert(data);
}
});
alert('Test');
$.ajax({
url:"AjaxHandler.ashx",
async:false,
data:"UserName=" + UserName,
success:function(data){
$("#divAjax").html(data);
},
error:function(msg){
alert(msg.responseText);
}
});
}
Ajax事件执行流程分析
接下来分析jQuery $.ajax方法中各个事件回调的执行顺序。
其标准执行流程如下:
1. 触发全局事件ajaxStart。
2. 执行局部回调beforeSend。
3. 触发全局事件ajaxSend。
4. 执行局部回调success。
5. 触发全局事件ajaxSuccess。
6. 执行局部回调error。
7. 触发全局事件ajaxError。
8. 执行局部回调complete。
9. 触发全局事件ajaxComplete。
10. 触发全局事件ajaxStop。