IE的緩存提高了網絡傳輸的效率,但是有時候也給我們帶來了麻煩,比如在某個模塊的修改頁面上,我們把其中的圖片替換掉,但是圖片的名字和原來的圖片名字一樣(比如為了方便管理和統一圖片命名,每個物品對應的圖片的名字都用物品的ID命名),只有的話因為緩存你修改后看到的圖片還是修改前的圖片。當時到網上取搜索了一下,把我的解決方法貼出來,希望對你有所幫助。下面兩種方法我都測試過了。
先說明一下,當時我使用下面的代碼是沒能解決問題的


<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="0">
<%
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
response.setDateHeader("Expires",-1);
%>
方法一:在后面加參數使得圖片不從緩存中讀取
<script>
document.write("<img src=<%=result.getPhoto()%>"+"?temp="+Date.parse(new Date())+" id='photo' width='120' height='120'/>" );
</script>
方法二:光使用<META HTTP-EQUIV="Pragma" CONTENT="no-cache">是不起作用的,IE仍然會cache數據的。 通常IE在一頁的數據沒有滿32K時它是不會緩存的。
如果把 no-cache 直接放在最前面的話,只要緩存中的數據沒有到32K,當時ie是不會緩存的,但是當讀過了no-cache標志,到了HTML其他部分時,如果數據超過了32K,IE仍然會將數據緩存起來。 這是由于IE分析一個頁面的語法時是從上到下讀取的,正確的方法如下:
<HTML>
<HEAD>
<META HTTP-EQUIV="REFRESH" CONTENT="5">
<TITLE> 標題 </TITLE>
</HEAD>
<BODY>
頁面的其它部分。。。。。
</BODY>
<HEAD>
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
</HEAD>
</HTML>
posted on 2007-05-30 18:08
破繭而出 閱讀(2012)
評論(0) 編輯 收藏