ie瀏覽器下,get請求緩存問題


1 使用get請求數據

1)Java代碼
$.getJSON("sortShow!sortShow?time="+new Date().getTime(),function(){});

開始我是直接這樣寫的

Java代碼
$.getJSON("sortShow!sortShow,function(){});

所以刷新的時候IE 會顯示上次的緩存,因此你必須提交新的數據,所以在后面加了個時間參數,即使你的后台沒設置這個參數,但也不會報錯。
此時IE會重新向后台發出請求,類似的還有 math.random這個函數可以用。
2)設置cache:false屬性,防止ie緩存

2 使用POST請求數據,可以防止ie緩存

3 在做ajax頁面無刷新添加的時候,IE下遭遇Ajax緩存,因為剛開始並不知道IE有這個壞毛病,折騰好久,終於解決問題。 總結一下解決辦法: 在IE下用Ajax請求某一頁面,通常會因為緩存的原因而返回上一次的結果,造成混亂,
即get方式時,獲取數據,因發送參數和地址都一致,故IE瀏覽器會從緩存中取,而不會去請求服務器端,
而post方式因為參數的不同,不會產生這個問題]而FF下不會出現這種情況。為了不受緩存影響,可以這樣做: IE訪問策略: Internet選項--瀏覽歷史記錄--設置-- Internet 臨時文件的選項改為每次訪問網頁時也可以
在AJAX請求的頁面后加個隨機函數,我們可以使用隨機時間函數 在javascript發送的URL后加上 t=Math.random() 例如這樣:
URL+"&"+"t="+Math.random();//或者new Date(); 在 URL 參數后加上 "?timestamp=" + new Date().getTime(); 最好的方法: $.ajaxSetup({cache:false}) 這樣頁面中所有的ajax請求時,都執行這個。就不必改已經完成的N個接口



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM