在setInterval()上感到困惑

时间:2012-01-08 02:09:40

标签: javascript jquery

我使用setInterval()来获取最新的数据,并按设定的间隔绘制一些东西。但是在IE中,它只运行一次,我在google中搜索它,它说IE的缓存可能有问题,所以我添加了我的网址的时间戳是这样的:

url+"?"+Math.random();

但它仍然不起作用,或者我犯了一些错误?

我改变了另一种方式来编写我的函数,前面的代码是:

$(document).ready(function()){
    autoRefreshFunction(some parameters){
        var interval=setInterval(
                         function(){
                             main function that gets data and draw
                         },time_interval);
    }
}

它只能在IE中工作一次,但是chrome可以。

新代码是:

$(document).ready(function()){
    var interval=setInterval(
                     function(){
                         main function that gets data and draw
                     },time_interval);
}

它适用于IE,所以我对这两种方法的区别感到困惑。

1 个答案:

答案 0 :(得分:2)

我认为这可能是你的问题:

$(document).ready(function()){ 

您过早地将括号缩短为ready。我想你想要:

$(document).ready(function() { 

IE可能因此而感到困惑。此外,在原始代码中,您有:

$(document).ready(function()){
    autoRefreshFunction(some parameters){ //<----- what's this?
        var interval=setInterval(
                         function(){
                             main function that gets data and draw
                         },time_interval);
    }

看起来你有点定义了一个名为autoRefreshFunction的函数,但由于你忘记了函数关键字而错误。

我认为最终结果应该是:

$(document).ready(function() {
    var interval=setInterval(
                     function(){
                         main function that gets data and draw
                     },time_interval);
}