js清除浏览器缓存

Posted 赵凯强

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js清除浏览器缓存相关的知识,希望对你有一定的参考价值。

浏览器缓存       

  1. 所有的数据都可以存到服务器中,但这样并不高效,当我们访问网页的时候,一会卡顿,二会浪费服务器的存储空间,三会给服务器造成压力
  2. 浏览器缓存,可以提高网站性能和浏览器的速度,但对于需要经常更新的网页来说,缓存导致用户无法显示更新后的样式

 如何通过js清除缓存?

随机数

  1. 脚本并不存在,而是服务端动态生成的,因此带了个版本号,以示区别。 即路径或者文件名后的随机数对于文件来说 等价于但浏览器会认为他是 该文件的某个版本!
  2. 客户端会缓存这些css或js文件,因此每次升级了js或css文件后,改变版本号,客户端浏览器就会重新下载新的js或css文件 ,刷性缓存的作用
    /* 图片的路径+图片名+随机数=图片的版本号更替 */
    $("#pic_code").attr(‘src‘,‘/static/img/verify_code.png‘+‘?temp=‘ + Math.random());
    /* Math.random() 只能在javascript 下起作用 */
    <script type="text/javascript" src="core.js?v=20140829"></script>
    /*时间*/
    ?v=new Date().getTime();

     

meta

  1. html里head区添加代码:
    <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"/>

     

ajax

  1. 设置属性cache:false,让ajax不调用浏览的缓存
    cache:false

     

  2. 用ajax请求服务器最新文件,并加上请求头If-Modified-Since和Cache-Control,如下:
    beforeSend :function(xmlHttp){ 
       xmlHttp.setRequestHeader("If-Modified-Since","0"); 
       xmlHttp.setRequestHeader("Cache-Control","no-cache");
      }

     

replace

  1. replace的原理就是用当前页面替换掉replace参数指定的页面
    <script language="javascript"> 
                 function jump(){ 
                     window.location.replace("b.html"); 
                 } 
             </script> 

     

 



以上是关于js清除浏览器缓存的主要内容,如果未能解决你的问题,请参考以下文章

js清除浏览器缓存的几种方法

能用JS或者前端的啥方法实现清除浏览器缓存吗

完成就绪状态后,清除缓存后,JS函数只会运行一次?

JS如何清除IE浏览器缓存

清除浏览器缓存?

js清除浏览器缓存的几种方法