async 英语释义为 “异步,非同步”。在项目中使用时总是忽略了它的存在。
当 async 是设置为 “true(默认状态)”,即表示异步进行,在 $.ajax运行时,也会同时运行$.ajax ->url 中的东西(想当于有两个线程同时进行)。
当 async 是设置为 “false”,时表示同步(单线)进行,在$.ajax运行时,程序必须先进入到后台程序完成成后才能进行$.ajax后面的方法
以下为例:
function openLogin(){
$.ajax({
cache: true,
type: "POST",
url:"oneCard",
dataType: "json",
async: false,
error: function(request) {
alert("Connection error");
},
success: function(data) {
alert("数据成功");
}
});
alert("同步进行");
}
后台5S睡眠
Thread.sleep(5000);
async: 设置为 true 时 先弹框了 “同步进行”,5S后再弹框 “数据成功”,它俩实际是同步进行。只是等待了5S,所以“数据成功”在后弹框。
async:设置为 false 时 我在后台设置了等待5s响应。 此时前台5S 后弹框了“数据成功” 再弹框 “同步进行”,而非第一种情况.
我觉得这个例子也足够说明了。