ajax同步请求和异步请求的区别
jquery 的 async 这个属性 默认是true:异步 , false:同步。
那么异步和同步到底有什么区别呢?
异步:异步处理是客户端通过事件触发ajax ,向服务器发送请求,在这个期间无论服务器有没有响应,客户端的其他代码一样可以运行。
同步:同步处理是客户端通过事件触发ajax ,向服务器发送请求,在这个期间客户端不能做任何处理。当ajax执行完毕才会继续执行其他代码。
示例:
console.log(1); var email = "739148774@qq.com"; $.ajax({ url:Base.ctx+'/invite/sendMessage.do', type:"post", async:true, dataType:"json", data:{ email:email }, success : function(data){ console.log(2); } }); console.log(3);
异步控制台输出顺序有可能为: 1->3->2
同步控制台输出顺序一定为:1->2->3
$.ajaxSettings.async = false;
$.post('/api/cksms.php',ckdata,function (data) {
// data=$.parseJSON(mytrim(data));
if(data.code==1) { //短信验证不通过
$("#tel").removeAttr("readonly");
$(yzm).parent().addClass("active");
$(yzm).parent().find("span").html("验证码不正确");
$(phone).parents("dl").removeClass("amend");
} else {
$("#tel").attr({ readonly: 'true' });
send_data.tel = $(phone).val(); // 添加修改数据
$(phone).parents("dl").addClass("amend");
}
},"json");
$.ajaxSettings.async = true;
单独设置