查看和删除浏览器缓存的方法=====》打开
最近在开发项目中发现有时候总要频繁地清除浏览器缓存,不然总是显示的过时的信息
浏览器缓存有利有弊,有些数据需要缓存下来使得页面打开更快提高网站性能,但有些缓存内容又必须清除,缓存可能会导致一些错误数据被展示。
介绍一些清除浏览器缓存的方法:
方法一:利用meta标签
<META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="0">
这种方法很简单,但不是所有浏览器都支持的,像chrome这种强制使用缓存的浏览器就没有用
方法二:jquery ajax清除浏览器缓存
//用ajax请求服务器最新文件,并加上请求头If-Modified-Since和Cache-Contro $.ajax({ url:'www.haorooms.com', dataType:'json', data:{}, beforeSend :function(xmlHttp){ xmlHttp.setRequestHeader("If-Modified-Since","0"); xmlHttp.setRequestHeader("Cache-Control","no-cache"); }, success:function(response){ //do something } async:false }); //直接用cache:false, $.ajax({ url:'www.haorooms.com', dataType:'json', data:{}, cache:false, ifModified :true , success:function(response){ //do something } async:false });
方法三:url后面加上随机数(字母)或者当前时间戳
URL ?ran=" + Math.random();
URL ?timestamp=+ new Date().getTime();
方法四:在js后面加日期戳
虽然看起来和url加随机数一样,但原理不同,这种最好所有js文件采用公共引入文件的形式,可以省去一些麻烦
<script src="/res/js/plugins/metisMenu/jquery.metisMenu.js?${.now?string('yyyy-MM-dd')}"></script>
方法五:后端处理
本文首发于Calamus的博客。