AJAX緩存問題

一、問題解釋:
 當瀏覽器第一次發送請求之後,如果第二次請求和第一次完全相同(URL和參數),
 那麼瀏覽器不會發送請求,只會使用第一次的緩存.
 
 有時會出現一些很奇葩的錯,可能是由於瀏覽器的不同緩存級別造成(第一次訪問成功,第二此出現bug)
 
二、ajax中解決緩存問題的方法
 客戶端:
  1.URL+new Date().getTime();
  2.在ajax發送請求前加上 xmlHttpRequest.setRequestHeader("If-Modified-Since","0");

 3.在ajax發送請求前加上 xmlHttpRequest.setRequestHeader("Cache-Control","no-cache");

 服務器端:
 返回值添加:
  //禁用頁面緩存 response.setHeader("Cache-Control","no-cache");

對於不同的瀏覽器有不同的支持
 客戶端選:URL+new Date().getTime();基本都支持(ie,chrome);

實質:網頁的緩存都是由HTTP消息頭中的“Cache-control”來控制的,我們只是在控制其參數
   
細節:
 刷新瀏覽器有不同的方法,會產生不同的結果。
 Cache-control參數:常見的取值有private、no-cache、max-age、must-revalidate等,默認爲private
 參見:http://www.cnblogs.com/cuixiping/archive/2008/05/04/1181056.html

發佈了34 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章