Ajax請求中的async:false/true的作用 、cache: true和false的區別


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

若要將其設置為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后

 

轉自於:https://www.cnblogs.com/banxian-yi/p/10956568.html

 

jQuery ajax中 cache: true和false的區別:

true的話會讀緩存,可能真的到服務器上。

假如上次訪問了a.html,第二次的時候得到的是上次訪問的a.html的結果,而不是重新到服務器獲取。

false的話會在url后面加一個時間綴,讓它跑到服務器獲取結果。

cache只有GET方式的時候有效。

 

Ajax頁面緩存問題分析與解決辦法

一、什么是Ajax緩存原理?

Ajax在發送的數據成功后,會把請求的URL和返回的響應結果保存在緩存內,當下一次調用Ajax發送相同的請求時,它會直接從緩存中把數據取出來,這是為了提高頁面的響應速度和用戶體驗。當前這要求兩次請求URL完全相同,包括參數。這個時候,瀏覽器就不會與服務器交互。

二、Ajax緩存的好處

這種設計使客戶端對一些靜態頁面內容的請求,比如圖片,css文件,js腳本等,變得更加快捷,提高了頁面的響應速度,也節省了網絡通信資源。

三、Ajax緩存的不足

Ajax緩存雖然有上述的好處,但是如果通過Ajax對一些后台數據進行更改的時候,雖然數據在后台已經發生改變,但是頁面緩存中並沒有改變,對於相同的URL,Ajax提交過去以后,瀏覽器還只是簡單的從緩存中拿數據,這種情況當然就不行了。

四、解決Ajax緩存問題的方法

解決這個問題最有效的辦法是禁止頁面緩存,有以下幾種處理方法:

1、在ajax發送請求前加上 xmlHttpRequest.setRequestHeader(“Cache-Control”,”no-cache”);

2、在服務端加 header(“Cache-Control: no-cache, must-revalidate”);

3、在ajax發送請求前加上 xmlHttpRequest.setRequestHeader(“If-Modified-Since”,”0″);

4、在 Ajax 的 URL 參數后加上 "?fresh=" + Math.random(); //當然這里參數 fresh 可以任意取了

5、第五種方法和第四種類似,在 URL 參數后加上 "?timestamp=" + new Date().getTime();

6、用POST替代GET:不推薦

7、jQuery提供一個防止ajax使用緩存的方法:

javascript" language="javascript">

$.ajaxSetup ({

cache: false //close AJAX cache

});

8、修改load 加載的url地址,如在url 多加個時間參數就可以:

function loadEventInfoPage(eventId){

$.ajaxSetup ({

cache: true // AJAX cache  下面加上時間后load的頁面中的js、css圖片等都會重新加載,

//加上這句action會重新加載,但是js、css、圖片等會走緩存

});

$("#showEventInfo").load(ctx + "/custEvents/viewEvent.action",  {"complaint.Id":eventId, "tt":(new Date()).getTime()},function(){})

}

 

9、設置html的緩存

<META HTTP-EQUIV="Pragma " CONTENT="no-cache">

<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">

<META HTTP-EQUIV="Expires" CONTENT="0">



作者:卞卞村長L
鏈接:https://www.jianshu.com/p/172957c5ab99
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

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



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