Ajax與IE6緩存問題及解決方案
本文向大家簡單介紹一下Ajax與IE6緩存問題,用ajax請求時,如果出現(xiàn)重復的URL,瀏覽器不會向服務器發(fā)送請求,而是根據(jù)之前相同的URL請求結果返回。
Ajax與IE6緩存問題
今天,有同事發(fā)現(xiàn)相關業(yè)務數(shù)據(jù)修改后,在IE6下還是顯示修改前的值。但在其他瀏覽器和IE7、IE8下,沒有這個問題。
原因:用ajax請求時,如果出現(xiàn)重復的URL,瀏覽器不會向服務器發(fā)送請求,而是根據(jù)之前相同的URL請求結果返回。原因就在于之前的請求及結果已經(jīng)保存在了 緩存里,如果遇到相同URL時,結果是直接從緩存里取得。
解決辦法:
1、設置IE6中工具-internet選項-Internet臨時文件-設置-檢查每次網(wǎng)頁的較新版本-設置為每次訪問此頁時檢查。
2、在IE發(fā)送ajax數(shù)據(jù)時,發(fā)送一個隨機時間戳。即只要讓每次請求的URL不一樣就可以了,比如每次請求時在URL中加上時間的毫秒數(shù)或隨機數(shù)(new Date().getTime()或者Math.Random() )。
◆另外,網(wǎng)上還有很多其他的解決方法:
1.送請求前加上
- XMLHttpRequest.setRequestHeader("If-Modified-Since","0")
或者用post方法提交
2.服務器端禁用緩存(只是禁止了服務端緩存,不能禁止ajax緩存) .
- response.setHeader("Pragma","No-cache");
- response.setHeader("Cache-Control","no-cache");
- response.setDateHeader("Expires", 0);
【編輯推薦】
- Javascript代碼輕松判斷IE6瀏覽器
- JS實現(xiàn)IE6下PNG圖片透明又出新方法!
- JavaScript數(shù)組元素刪除問題解決方案
- Javascript操作img解決網(wǎng)站提交數(shù)據(jù)異常問題
- JavaScript調試工具解決IE6等多版本共存問題