针对ie缓存问题的解决

在制作页面时,发现在其他浏览器上显示都是正常的,只有在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缓存问题的解决

分享到:更多 ()

发表评论 0