1. 程式人生 > >Ajax中的async:false/true的作用

Ajax中的async:false/true的作用

Ajax中的async用於控制(false)同步和(true)非同步,預設的是true,即請求預設的是非同步請求

      $.ajax({
                type: "POST",
                url: "/users/sessions",
                //async
                async: false,
                dataType: "json",
                contentType: "application/json;charset=UTF-8",
                data: jsonData,
                success: function (result) {
                    if (result.resultCode == 200) {
                        event.preventDefault();
                        location.href = "home.do";
                    } else {
                        event.preventDefault();
                        $('#errorInfo').html(result.message);
                    }
                }
            });

一、async值為true (非同步)

當ajax傳送請求後,在等待server端返回的這個過程中,前臺會繼續 執行ajax塊後面的指令碼,直到server端返回正確的結果才會去執行success,也就是說這時候請求users/sessions的請求還沒有執行完,可能就執行了後面的操作,那麼後面就可能出現空值的情況。

二、async值為false (同步)

當執行當前AJAX的時候會停止執行後面的JS程式碼,直到AJAX執行完畢後時,才能繼續執行後面的JS程式碼。

false為同步,上面的Ajax請求會將將整個瀏覽器鎖死,只有/users/sessions執行結束後,才可以執行後面其它操作。