2015-09-19 38 views
1

我使用localStorage存儲圖像路徑。我有一個頁面,其中New Image由用戶上傳。我正在重設localStorage,以便在回發完成時應用新圖像。IE - 當上傳了新圖片,舊形象越來越顯示

Chrome, Firefox它運作良好,但在IE瀏覽器相同的舊圖像被看到。

正如我在IE清除瀏覽器緩存,它表明我的新形象。

如何解決這IE瀏覽器?

我知道querystring招追加到的圖像,但我不能在我的代碼中使用它,有沒有其他辦法?

+0

是另一個圖像url的選項? – Steve

+0

在我的情況下,網址將相同。 – Anup

回答

0

嘗試:

<!--[if IE]> 
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
    <META HTTP-EQUIV="Expires" CONTENT="-1"> 
<![endif]--> 

記住,IE 10不支持,雖然條件註釋。如果新版本仍然存在相同的問題,則動態更改圖像的名稱是一種方法。

+0

我試過這個'meta'標籤,它們不能正常工作,同樣刪除if也不起作用。 – Anup

+0

然後,你需要改變圖片的名稱,當它上傳,或放棄IE用戶,他們應該如此公正的命運... – Ragdata

1

嘗試增加在圖像URL的末尾緩存斷路器,

newImage.src = "http://localhost:8080/image.jpg?" + new Date().getTime(); 

這將時間戳添加到image.jpg的要求,這將會使瀏覽器再次尋求您的服務器圖像而不是檢索存儲在瀏覽器緩存中的那個。

或者更好的方法,你可以用Cache-control: no-cache HTTP標頭爲你的形象。

Pragma: no-cache 
Expires: Fri, 30 Oct 1998 14:19:41 GMT 
Cache-Control: no-cache, must-revalidate 

通過提供過去的日期,它不會被瀏覽器緩存。

+1

這節省了我的培根今天,謝謝。如果有人願意用比特幣給我提出建議, – Sydwell