問題: 在做即時通訊時,需要提示用戶有幾條未讀的提醒,這個是(如果有新的提示消息立馬在瀏覽器無刷新提示)即時獲取的。但我們的做法是,當用戶點擊未讀信息進入到信息顯示頁面時重新獲取下未讀的提醒;但是在IE瀏覽器下,在新視窗打開以後沒有重新獲取請求,再次刷新頁面也沒有看到請求地址。但是如果將鏈接打開方式
問題:
在做即時通訊時,需要提示用戶有幾條未讀的提醒,這個是(如果有新的提示消息立馬在瀏覽器無刷新提示)即時獲取的。但我們的做法是,當用戶點擊未讀信息進入到信息顯示頁面時重新獲取下未讀的提醒;但是在IE瀏覽器下,在新視窗打開以後沒有重新獲取請求,再次刷新頁面也沒有看到請求地址。但是如果將鏈接打開方式改為target=_self或者_parent就不會出現這樣的情況,會有第二次請求;
原因分析:因為IE瀏覽器對請求進行了緩存。。。。。也有可能跟鏈接的打開方式(target="_blank/_self")有關;
解決辦法:
1,在請求地址後面追加隨機數或時間戳 $.get(‘url’,{t:Math.random()}); 這樣就不會調用緩存而是發送新的請求;(最簡單)
2,使用$.ajax()發送請求,設置cache:false; 不使用框架代碼:XMLHttpRequest.setRequestHeader("If-Modified-Since","0"), 或者XMLHttpRequest.setRequestHeader(‘"Cache-Control","no-cache"’)
3,在伺服器端修改更改相應header(‘Cache-Control:no-cache,must-revalidate)