Ajax請求中的async:false/true的作用

原文地址  :https://www.cnblogs.com/mmzuo-798/p/7098979.html

 

async. 默認是 true,即爲異步方式,$.ajax執行後,會繼續執行ajax後面的腳本,直到服務器端返回數據後,觸發$.ajax裏的success方法,這時候執行的是兩個線程。

  async 設置爲 false,則所有的請求均爲同步請求,在沒有返回值之前,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成纔可以執行。

下面查看一個示例:
var temp;
$.ajax({
 async: false,
  type : "post",
  url : defaultpostdata.url,
  datatype : 'json',
  success : function(data) {
     temp=data;
  }
});
alert(temp);

 

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

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章