禁止JSP页面缓存及图片等资源的缓存问题总结【客户端缓存】

 第一种做法:   

   mxGraph流程图在展现时读取的是内容为xml的任意流程图文件,现在需要解决的问题是,当有新的同样名称那个的流程图文件生成到指定目录,那么WEB前端页面点击相应链接会发生内容改变么?答案是NO,因为在JSP页面中有这么一行read(graph, 'b15228b7-53a8-11df-bcda-86f3311bf26f.pogo‘);那么这就只是读取了这个POJO文件,如果再生成新的覆盖了呢,结果是还会去读客户端缓存中的文件C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files也就是这个目录下的缓存。所以当下需要解决的是不让读取缓存中的文件,只读取服务器端的新文件

具体做法是在读取的后面加上参数,每次参数值不能相同

  <%
    long random=System.currentTimeMillis();
   %>

 

 <script type="text/javascript" >
   var rd="<%=random%>";
   </script>

    那么在下边的mxGraph相关的JS中应该写成新的样子

 read(graph, 'b15228b7-53a8-11df-bcda-86f3311bf26f.pogo?‘+rd);

这样问题就解决了

    浏览器会认为你的文件两次参数不一样即两个不同的文件,故会重新从服务器取文件而不是客户端缓存中的文件,这个做法可以用到JSP上的图片,视频缓存等,非常好用

第二种做法【不推荐,有点笨】

   这个方法要求每台访问这个WEB网页的计算机必须修改IE选项配置

    具体配置步骤:工具-->Intenet选项【浏览历史记录中的设置】-->将检查所存网页的较新版本下的选项勾选为第一项的每次访问网页时,默认是自动,这样的话不需要第一种方法中所写的代码也可以禁止资源缓存

 

 顺便说下最常用的禁止JSP页面在客户端缓存的写法

  <META HTTP-EQUIV="pragma" CONTENT="no-cache"> 
  <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
  <META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">

你可能感兴趣的:(JavaScript,jsp,cache,浏览器,IE)