1. 程式人生 > >ajax 的 async 的同步和 非同步

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("資料成功");
            }
        });
        alert("同步進行");
}

後臺5S睡眠

Thread.sleep(5000);


async: 設定為 true 時 先彈框了 “同步進行”,5S後再彈框 “資料成功”,它倆實際是同步進行。只是等待了5S,所以“資料成功”在後彈框。

async:設定為 false 時 我在後臺設定了等待5s響應。 此時前臺5S 後彈框了“資料成功” 再彈框 “同步進行”,而非第一種情況.


我覺得這個例子也足夠說明了。