ajax 的 async 的同步和 非同步
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("同步進行");
}
後臺5S睡眠
Thread.sleep(5000);
async: 設定為 true 時 先彈框了 “同步進行”,5S後再彈框 “資料成功”,它倆實際是同步進行。只是等待了5S,所以“資料成功”在後彈框。
async:設定為 false 時 我在後臺設定了等待5s響應。 此時前臺5S 後彈框了“資料成功” 再彈框 “同步進行”,而非第一種情況.
我覺得這個例子也足夠說明了。