页面内容在Internet Explorer中不刷新(仅在浏览器重新打开后)

时间:2016-03-21 09:29:16

标签: javascript php jquery internet-explorer

我正在尝试进行必须在Internet Explorer中工作的聊天。内容刷新的代码如下(我知道它可以做得更好,但它适用于所有其他浏览器......)

但在IE中,脚本正在运行(我的意思是它正在刷新),但内容仍然相同。即使我在文件中写了一些东西" chat_vypis.php" ...当我尝试用F5刷新它时,它也不起作用......在" chat_vypis.php& #34;只有SELECT查询和echo结果。你可以在sdbt.mobydyk.cz查看。

这是刷新的脚本,感谢您的每一条建议!

<script type="text/javascript">
$(document).ready(function(){ 

    var auto= $('#chat');
    var refreshed_content;  
        refreshed_content = setInterval(function(){
        auto.load("chat_vypis.php");}, 
        1000);                                      
        console.log(refreshed_content);                                      
        return false; 
});
</script>

2 个答案:

答案 0 :(得分:0)

IE可能正在缓存ajax请求,甚至不发送它们。尝试:

$.ajaxSetup({ cache: false });

在文档就绪功能开始时

答案 1 :(得分:0)

你可以做两件事:

1)禁用所有AJAX缓存。您可能不想这样做,因为它会禁用您在同一页面中发出的每个ajax请求的所有jQuery缓存,除非您在所有其他ajax请求中手动设置&#34; cache&#34;:true。

$(document).ready(function () {
    $.ajaxSetup ({
         cache: false
    });
});

2)诱使浏览器认为你每次都要请求一个不同的页面(请注意,无论如何这都是关闭AJAX缓存的幕后操作)。:

<script type="text/javascript">
$(document).ready(function(){ 

    var auto= $('#chat');
    var refreshed_content;  
        refreshed_content = setInterval(function() {
            auto.load("chat_vypis.php?_="+Math.floor((Math.random() * 1000000) + 1));
        }, 1000);                                      
        console.log(refreshed_content);                                      
        return false; 
});
</script>

理论上你也可以把它放在服务器端(在打开任何输出之前的顶部):

<?php
header("Cache-Control: no-cache");
header("Pragma: no-cache");

?>

然而,IE通常会忽略这一点(特别是当内容是CSS或JS时)。