,我在B页面上传图片(B页面是从A页面链接过去的),我把文件上传后,放web的images目录下,上传的图片的名字都叫my.jpg 不管原来是什么东西,上传后都同意改成这个名字。
然后上传后用转向到A页面,这时候我再点击B页面,能看见刚才 的图片,因为我把上传的图片显示到了B页面。
但是当我再次在B页面上传的时候,上传的其他图片也同样放在了images目录下,而且也是叫my.jpg,就相当于把上次上传的图片给替换了,这个时候上传完成了,又会自动转向到A页面。可是这个时候我点击到B页面的时候,图片却没有换,还是第一次上传的那张,但是我打开images目录看,实际上图片都已经上传成功了。已经跟换了。但是页面上体现不出来。
我上网找了很多办法来清除缓存
有在图片后面加随机数的和时间戳的,也有jsp常用的那个清楚缓存的:(但是都没有用)
<%
response.setHeader("Pragma","No-Cache");
response.setHeader("Cache-Control","No-Cache");
response.setDateHeader("Expires", 0);     
%>
这些东西我都试过了,但是都没有用,请问怎么办呢??
请高手指教

解决方案 »

  1.   

    进入B页面每过几秒刷新一次直接在头文件里设置可暂时解决你的问题。
    对于你说的页面缓存问题,我有个想法,就是利用一个随机数(比如10000-99999)加在URL后面,每次从A导向B时,产生一个随机数。这个数字没特殊用途,仅仅用于浏览器在读取B页面时,在缓存中找不到一样URL的页面。
      

  2.   

    window.self.location.href = "item_upload.jsp?id="+id+"&temp="+<%=new Date().getTime()%>;这样我都试过了  还是不行 还有:
    window.self.location.href 和 window.self.location有什么区别
    反正随机数也:都试过了 没有办法啊  都不行 
    我试过用
    <meta   http-equiv="Refresh"   content="10;URL=">
    这种方法行 但是这种方法不符合要求 总不能然页面一直刷新啊
    谁有办法啊??
      

  3.   

    <img src="${applicationScope.context }/images/logo.gif?dd=<%=new Date()%>" />
    如果是JSP文件,试试这种方式显示图片吧
      

  4.   

    回复楼主,不在js中产生随机数,而是在servlet中产生。顺便,不要太依赖。在js中产生随机数只是改变了表现端,对于浏览器读取文件数据的时候,没有变化。
    js只是客户端工具,用来骗客户端的
    当你要转向的页面在服务器发生URL变化时,才会导致页面真正的变化。才会找不到缓存,因为从服务器端获取的数据不一致。紧记,js只是客户端表现工具,并不会改变浏览器获取的数据。
      

  5.   

    浏览器是会缓存数据的。
    工具>>internate选项>>常规>>设置>>选择第1个(浏览器默认的是选择第3个自动),这样就不缓存了。还有:js的随机数的方法应该是可行的,至于你为什么没用的起来,你还是检查下你的生成的url是否不同?