Javascript 在setInterval()上混淆

Javascript 在setInterval()上混淆,javascript,jquery,Javascript,Jquery,我使用setInterval()获取最新数据,并按设定的时间间隔绘制一些东西。但是在IE中,它只工作一次,我在google中搜索了它,它说IE的缓存可能有问题,所以我在我的url中添加了一个时间戳,如下所示: url+"?"+Math.random(); 但还是不行,还是我犯了一些错误 我改变了另一种编写函数的方式,以前的代码是: $(document).ready(function()){ autoRefreshFunction(some parameters){ v

我使用setInterval()获取最新数据,并按设定的时间间隔绘制一些东西。但是在IE中,它只工作一次,我在google中搜索了它,它说IE的缓存可能有问题,所以我在我的url中添加了一个时间戳,如下所示:

url+"?"+Math.random();
但还是不行,还是我犯了一些错误

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

$(document).ready(function()){
    autoRefreshFunction(some parameters){
        var interval=setInterval(
                         function(){
                             main function that gets data and draw
                         },time_interval);
    }
}
$(document).ready(function()){
    var interval=setInterval(
                     function(){
                         main function that gets data and draw
                     },time_interval);
}
它在IE中只工作一次,但chrome还可以

新守则如下:

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

它在IE中工作,因此我对这两种方法之间的区别感到困惑。

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

$(document).ready(function()){ 
您过早地关闭了
ready
的括号。我想你想要:

$(document).ready(function() { 
我可能对此感到困惑。另外,在原始代码中,您有:

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

interval变量仅存在于AutoRefresh函数的上下文中(未全局声明),因此当清除此函数的内存时,interval也是如此。尝试全局声明“interval”或使用第二个代码。我无法说出您在问什么。您是否可以用真实代码而不是伪代码来澄清,并更具体地说明哪些有效,哪些无效。@Cystack-关于变量
interval
的生存期,您是正确的,但这不会影响实际的间隔计时器。自动刷新功能的作用是什么?您应该添加一些代码,在每次启动该功能时更新屏幕上的文本框。如果它正在启动,您可以停止担心setInterval,而将注意力集中在缓存上。