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);
%>
方法一:在后面加参数使得图片不从缓存中读取
方法二:光使用<META HTTP-EQUIV="Pragma" CONTENT="no-cache">是不起作用的,IE仍然会cache数据的。 通常IE在一页的数据没有满32K时它是不会缓存的。
如果把 no-cache 直接放在最前面的话,只要缓存中的数据没有到32K,当时ie是不会缓存的,但是当读过了no-cache标志,到了HTML其他部分时,如果数据超过了32K,IE仍然会将数据缓存起来。 这是由于IE分析一个页面的语法时是从上到下读取的,正确的方法如下:
先说明一下,当时我使用下面的代码是没能解决问题的


<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 >
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 >
< HEAD >
< META HTTP-EQUIV ="REFRESH" CONTENT ="5" >
< TITLE > 标题 </ TITLE >
</ HEAD >
< BODY >
页面的其它部分。。。。。
</ BODY >
< HEAD >
< META HTTP-EQUIV ="PRAGMA" CONTENT ="NO-CACHE" >
</ HEAD >
</ HTML >