專案有時要用一些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();
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 在服務...