Ajax請求中的async:false/true(同步/異步)的作用


async. 默認是true,即為異步方式,$.Ajax執行后,會繼續執行ajax后面的腳本,直到服務器端返回數據后,觸發$.Ajax里的success方法,這時候執行的是兩個線程。若要將其設置為false,則所有的請求均為同步請求,在沒有返回值之前,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執行。

下面查看一個示例:

 1 var temp;
 2 $.ajax({
 3 
 4    async: false,
 5    type : "POST",
 6    url : defaultPostData.url,
 7    dataType : 'json',
 8    success : function(data) 
 9    {
10 
11       temp=data;
12    }
13 
14 });
15 
16 alert(temp);

這個ajax請求為同步請求,在沒有返回值之前,alert(temp)是不會執行的。

如果async設置為:true,則不會等待ajax請求返回的結果,會直接執行ajax后面的語句。

不過上面設置同步請求的方法,有網友曾經反饋將async設成false后, 原意是想返回數據了再執行$.Ajax后面的腳本, 沒想到這個地方卻導致了在火狐瀏覽器下出現閃屏(Firefox 11.0),滾動條下拉到底部觸發ajax的情況。最后只能將async:false注釋掉, 也就是async為ture的情況下,成功解決了火狐瀏覽器滾動條下拉到底部觸發ajax出現閃屏的問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM