页面JS缓存问题解决方案

1.在jsp中加入头

 <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
 <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
 <META HTTP-EQUIV="Expires" CONTENT="0">

或者加入

   <meta http-equiv="pragma" content="no-cache"  />
   <meta http-equiv="content-type" content="no-cache, must-revalidate" />
   <meta http-equiv="expires" content="Wed, 26 Feb 1997 08:21:57 GMT"/>


清除临时缓存

<body onLoad="javascript:document.yourFormName.reset()">


2.在action,使用如下声明

  response.setHeader("Pragma","No-cache");
  response.setHeader("Cache-Control","no-cache"); 
  response.setDateHeader("Expires", 0);


3.随机参数document.write("<script src='test.js?rnd="+Math.random()+"'></s"+"cript>")。


4.jquery ajax清除浏览器缓存的两种方法:


1.通过$.ajaxSetup 设置属性cache:false,让ajax不调用浏览的缓存.
     jQuery.ajaxSetup ({cache:false}) 

2.可以在ajax的url后加上随机串来避免浏览缓存,如$.ajax({url:'test.php?'+parseInt(Math.random()*100000)})缓存


5.有时候以上的方法清除缓存只清除一次,第二次就没有效果了。

所以,本人认为最佳的方法是,在调试的过程中,禁掉IE缓存,这样调试就OK了。但是,用户并不会禁掉呀,这不是出问题了吗?

用户会不会我们不去管,如果写好了js代码的话,我们在js文件后面加入一个版本号就好了。比如:

<script type="text/javascript" src="<%=baseURL%>/xhd_js/select-ajax.js?1.0"></script>

但是,如果开发者重新修改了js文件用户怎么办?

修改之后确定使用之后,再加上

<script type="text/javascript" src="<%=baseURL%>/xhd_js/select-ajax.js?2.0"></script>

则可以解决问题。
原文地址:https://www.cnblogs.com/zhaojinhui/p/4322983.html