zoukankan      html  css  js  c++  java
  • 页面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>
    
    则可以解决问题。
  • 相关阅读:
    mysql InnoDB 索引小记
    Linux shell 脚本小记
    Java中Integer的源码学习
    nginx小记
    位运算小结
    Redis小结
    CSS中nth-child和nth-of-type的简单使用
    Linux awk小记
    mysql小记--基础知识
    让44.1版本的sketch打开更高版本的sketch文件
  • 原文地址:https://www.cnblogs.com/zhaojinhui/p/4322983.html
Copyright © 2011-2022 走看看