在制作页面时,发现在其他浏览器上显示都是正常的,只有在ie上会有缓存的问题,针对这个问题,也是找了很多的解决方案。
1.在html头中加入以下3句话,可以防止大部分浏览器缓存
<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">
2.js中加入类似下面的代码,让每次的链接都不一样
var s=Math.random()*10; document.getElementById("checkCodeImg").innerHTML="<img src='/checkcode.jsp?rnd="+s+"'/>"; <script src="xxx.js?t="+s+"></script>
3.通过为URL地址添加后缀的方式解决问题
<script type="text/javascript"> $(function () { window.setInterval(function () { $.ajax({ url:'/h5/ss.do?t='+ new Date().toTimeString() , // url:'/h5/ss.do?t='+ Math.random() , success: function (result) { } }); }, 5000); }); </script>
4.通过jQuery的Ajax设置解决问题
实际上jQuery具有针对这个的Ajax设置,我们只需要按照如下的方式调用$.ajaxSetup方法禁止掉Ajax的缓存机制
<script type="text/javascript"> $(function () { $.ajaxSetup({ cache: false }); window.setInterval(function () { $.ajax({ url:'/h5/ss.do', success: function (result) { } }); }, 5000); }); </script>
上面的方法你可能写了一种并不好用,你可以多尝试几种结合到一起的方法。我的问题就这样解决了。
可能还会有其他的解决办法,欢迎大家一起讨论。
欢迎分享本文,转载请保留出处:前端ABC » 针对ie缓存问题的解决