IE 和 setInterval() 不刷新/更新的问题

Posted

技术标签:

【中文标题】IE 和 setInterval() 不刷新/更新的问题【英文标题】:Problem with IE and setInterval() not refreshing/updating 【发布时间】:2011-03-26 11:40:09 【问题描述】:

我正在使用 javascript/Jquery 使用数据库中的值自动更新页面,尽管它在 Internet Explorer 中似乎没有更新。它在 FireFox 和 Chrome 中运行良好。谁能解释什么是错的?看起来 IE 只是显示页面的缓存版本。我怎样才能防止这种情况发生?谢谢。

function updateComm()   
 var url="commandSys.php";  
 jQuery("#theElement").load(url);  


setInterval("updateComm()", 1000);

【问题讨论】:

【参考方案1】:

您的 php 页面已被缓存。与间隔无关。在页面上设置正确的缓存标头。

【讨论】:

【参考方案2】:

尝试使用ajaxSetup禁用缓存

$.ajaxSetup (
    // Disable caching of AJAX responses */
    cache: false
);

function updateComm()   
 var url="commandSys.php";  
 jQuery("#theElement").load(url);  


setInterval(updateComm, 1000);

或者,您可以手动将+new Date 附加到url,这样它就会附加一个查询字符串以防止缓存。

或者,在服务器端禁用缓存。

【讨论】:

非常感谢。我使用了“ajaxSetup”解决方案。 :) 是的,对我也有用,只是将此代码的第一部分复制并粘贴到我的文件中。 太棒了,IE 也有同样的问题。有趣的是,当打开开发人员工具时,它就可以工作了。感谢分享。

以上是关于IE 和 setInterval() 不刷新/更新的问题的主要内容,如果未能解决你的问题,请参考以下文章

在不刷新的情况下更新 IE10 固定站点的后退/前进按钮的颜色

使用 setInterval 更新地理位置信息

IE8兼容问题

面试题--如何渲染几万条数据并不卡住界面

IE浏览器下ajax缓存导致数据不更新的解决方法

Oracle设置物化视图的自动刷新