Ajax頁面快取分析與解決

2021-08-10 10:17:47 字數 953 閱讀 9338

一、什麼是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使用快取的方法:

function loadeventinfopage(eventid){

9、設定html的快取

AJAX防止頁面快取

採用ajax技術的時候 通常我們無重新整理頁面提交資料後 用同樣的url去獲取資料的時候會發現是以前的資料 那樣就給client端帶來假象了 採用以下的方法可以取消快取 htm網頁 或者asp網頁 response.expires 1 response.expiresabsolute now 1 r...

Ajax獲取頁面被快取的解決方案

ajax頁面引數相同時只返回快取的內容的解決辦法 常利用ajax寫一些頁面無重新整理的內容獲取頁面,這種方式很快捷也很方便,但其中有乙個問題,就是如果兩次提交的引數相同時,返回的內容只返回上次獲取的內容,如果我們在第一次修改了引數,第二次再次呼叫卻會發現頁面根本沒有改變。這樣的情況是是為ajax獲取...

ajax快取解決辦法

有三種辦法 1 加個隨機數 2 在要非同步獲取的asp頁面中寫一段禁止快取的 response.buffer true response.expiresabsolute now 1 response.expires 0 response.cachecontrol no cache 3 在ajax傳送...