ie8兼容性問題(三) 緩存問題
- 這個問題時在實現頭像上傳功能時發現的。
頭像上傳功能,在原頁面上點擊頭像時彈出彈框,在彈框中實現新頭像上傳,上傳成功後關閉彈框,刷新原頁面頭像。
刷新原頁面頭像是這樣的
function getImg() {
url = "integralIndexController.do?downloadFile";
$("#img1").attr("src", url);
}
關閉頁面時,調用getImg方法。
結果chrome中可以正常刷新頁面,ie8中則不刷新。找了好久終於找到了問題。。。
ie8的緩存
- ie8中,如果請求的地址和參數、參數值均不變化的話,是不會再次進入方法的。而是直接進入success,這樣就不會拿回新的數據,頁面也就不會刷新了。
解決ie8緩存的方法一:
在請求url後再加一個參數,值爲隨機數,這樣的話就保證了ie8請求時每次都是新的url,所以可以有效的解決緩存問題
function getImg() {
url = "integralIndexController.do?downloadFile&rnd=" + Math.random();
$("#img1").attr("src", url);
}
解決ie8緩存的方法二:
與一的原理是一樣的,就是如果不想加隨機數的話,可以加當前日期的毫秒值,這個值是不會重複的。所以也可以有效的解決緩存問題
function getImg() {
var now = new Date();
var millDate = now.getTime();
url = "integralIndexController.do?downloadFile&rnd=" + millDate;
$("#img1").attr("src", url);
}