要做的东西是实现这个这样的功能,把鼠标移动到某个条目上,然后弹出一个层显示出这个条目的图片,图片可以修改。
在弹出的那个div用<img />来实现,图片在tomcat启动时已经生成在一个文件目录下了,
修改了图片后是用的struts,redirect到原来的页面,问题是仍不显示修改后的图片!还是原来的图片,没有变化。
引用图片的js代码:
$("imagePreview").src = imagesrc+"?tempid="+Math.round(Math.random()*100);
然后google(发现用chrome,或者修改IE设置为每次检查后,修改了图片能够立即变化,但是以客户为中心)
然后在head里加了mete的那三行禁止缓存的语句,没有用,还用了innerHTML把整个img换掉,也给img后面的src加了一个tempid,最后出现的问题是,修改了图片后,有时候显示修改后的图片,再移开又移上去又有可能显示原来的老图片,
到底有没有什么好的办法呢?

解决方案 »

  1.   

     <HEAD>
          <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
        </HEAD>
      

  2.   

    修改后手动清空缓存后可以正确显示,有没有js代码可以清除缓存的,难道是我贴进去的那3行代码有错误?
    <head>
    <%
    response.setHeader("Pragma","No-Cache"); 
        response.setHeader("Cache-Control","No-Cache"); 
        response.setDateHeader("Expires",0); 
    %>
    <title>设置页面</title>
    <link href="main.css" rel="stylesheet" type="text/css">
    <script language="javascript" src="../js/splitpage.js"></script>
    </head>
      

  3.   

    浏览器也设置一下
    工具--internate选项--设置--每次访问此页时
      

  4.   

    用过了,用firefox,chrome,或者IE该设置都没有问题,问题是客户不一定会改
      

  5.   

    试试:$("imagePreview").src = imagesrc+"?tempid="+Math.random(); 
      

  6.   

    response.setHeader("Pragma","No-Cache"); 
        response.setHeader("Cache-Control","No-Cache"); 
        response.setDateHeader("Expires",0);这样设置只是设置JSP页面不缓存,并不是设置图片不缓存.
      

  7.   

    最好是给予request的请求,那样的话就不会再你重新提交了修改的图片后还不更新了。
      

  8.   

    $("imagePreview").src = imagesrc+"?tempid="+Math.random(); 可以,解决了
    虽然我不明白为什么
    $("imagePreview").src = imagesrc+"?tempid="+Math.round(Math.random()*100); 
    这个不行,但是至少问题解决了,看到template Internet files文件夹下的那么多图片的名字,我想是不是可以改成用一个计数来代替random,
      

  9.   


    因为你使用Math.round(Math.random()*100)很容易得到重复的数据,所以有时行有时不行,Math.random()得到重复数据的概率很低