我正在尝试进行必须在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>
答案 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时)。