Ajax快取解決辦法

2022-05-07 06:39:11 字數 1911 閱讀 3612

專案有時要用一些ajax的效果,因為比較簡單,也就沒有去用什麼ajax.net之類的東西,手寫**也就實現了。、

第二天,有人向我報告錯誤;說是只有第一次讀取的值正常,後面的值都不正常;我除錯了一下 ,確實有這樣的問題,查出是因為ajax快取的問題:解決辦法有如下幾種:

1、在服務端加 header("cache-control: no-cache, must-revalidate");(如php中)

2、在ajax傳送請求前加上 anyajaxobj.setrequestheader("if-modified-since","0");

3、在ajax傳送請求前加上 anyajaxobj.setrequestheader("cache-control","no-cache");

4、在 ajax 的 url 引數後加上 "?fresh=" + math.random(); //當然這裡引數 fresh 可以任意取了

5、第五種方法和第四種類似,在 url 引數後加上 "?timestamp=" + new date().gettime();

6、用post替代get:不推薦

1、加個隨機數

2、在要非同步獲取的asp頁面中寫一段禁止快取的**:

response.buffer =true

response.expiresabsolute =now() - 1

response.expires=0

response.cachecontrol="no-cache"

3、在ajax傳送請求前加上xmlhttp.setrequestheader("if-modified-since","0");可以禁止快取

另乙個作者寫到:

ajax的快取是由瀏覽器維持的,對於發向伺服器的某個url,ajax僅在第一次請求時與伺服器互動資訊,之後的請求中,ajax不再向伺服器提交請求,而是直接從快取中提取資料。

有些情況下,我們需要每一次都從伺服器得到更新後資料。思路是讓每次請求的url都不同,而又不影響正常應用:在url之後加入隨機內容。

e.g.

url=url+"&"+math.random();

key points:

1.每次請求的url都不一樣(ajax的快取便不起作用)

2.不影響正常應用(最基本的)

----------------

方法二:(未經證實)

在jsp中禁止快取

另乙個作者寫到:

我們都知道,

ajax

能提高頁面載入的速度的主要原因是通過ajax減少了重複資料的載入,真正做到按需獲取,既然如此,我們在寫ajax程式的時候不妨送佛送到西,在客戶端再做一次快取,進一步提高資料載入速度。那就是在載入資料的同時將資料快取在瀏覽器記憶體中,一旦資料被載入,只要頁面未重新整理,該資料就永遠的快取在記憶體中,當使用者再次檢視該資料時,則不需要從伺服器上去獲取資料,極大的降低了伺服器的負載和提高了使用者的體驗。

ajax快取解決辦法

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

ajax快取解決辦法

有三種辦法 1 加個隨機數 xmlhttp.open get ajax.asp?now new date gettime true 2 在要非同步獲取的asp頁面中寫一段禁止快取的 response.buffer true response.expiresabsolute now 1 respons...

Ajax快取解決辦法

看到一篇文章不錯,留著呵呵 專案有時要用一些ajax的效果,因為比較簡單,也就沒有去用什麼ajax.net之類的東西,手寫 也就實現了。第二天,有人向我報告錯誤 說是只有第一次讀取的值正常,後面的值都不正常 我除錯了一下 確實有這樣的問題,查出是因為ajax快取的問題 解決辦法有如下幾種 1 在服務...