5

我已经上下搜索,但尚未找到允许 setInterval 在任何版本的 Internet Explorer 中工作的东西。

下面是我现在正在使用的代码......

<script type="text/javascript">

$(document).ready(function () {
    $('#varRefresh').load('reload.php');

    window.setInterval("refreshVar();", 5000); //**** every 5 seconds
});

function refreshVar() {
    $('#varRefresh').load('reload.php');
}
</script>

<div id="varRefresh">
</div>

谁能指出我正确的方向,以便我可以让它在 IE 中工作?

4

5 回答 5

3

您尝试加载的页面可能只是被缓存了。

您可以强制 Internet Explorer 不缓存页面,如下所示: 阻止 Internet Explorer 8 中的页面缓存

或者,您可以简单地将时间戳附加到 URL;因为该 URL 对 IE 来说是新的,所以它总是会加载最新版本。

例子:

$(document).ready(function () {
    $('#varRefresh').load('reload.php?'+new Date().getTime());

    window.setInterval(refreshVar, 5000); //**** every 5 seconds
});

function refreshVar() {
    $('#varRefresh').load('reload.php?'+new Date().getTime());
}
于 2012-11-28T10:39:40.773 回答
1

Working Fiddle tested on Chrome, FireFox, Safari, Opera, Internet Explorer and android browser.

<script type="text/javascript">

$(document).ready(function () {
    $('#varRefresh').load('reload.php');
    refreshVar();
});

function refreshVar() {
    var refresh = setInterval(function(){
    $('#varRefresh').load('reload.php');
    }, 5000);
}
</script>

<div id="varRefresh">
</div>

Hope it helps!

于 2014-05-31T05:28:23.153 回答
1

尝试替换此行:

window.setInterval("refreshVar();", 5000);   //**** every 5 seconds

有了这个:

window.setInterval(refreshVar, 5000);   //**** every 5 seconds

(使第一个参数成为函数引用而不是字符串)

于 2012-11-26T13:50:55.680 回答
0

不要将函数的名称作为字符串文字传递,而是尝试将函数作为引用传递,如下所示:

window.setInterval(refreshVar, 5000);
于 2012-11-26T13:51:15.193 回答
-2

尝试改用 setTimeout()。看看这个资源: http ://www.w3schools.com/jsref/met_win_settimeout.asp

于 2012-11-26T13:52:13.290 回答