2013-08-04 46 views
1

我有两张表,我想每隔一段时间刷新一次。两者都使用几乎相同的JavaScript,除了一个有效,另一个没有。
这是第一个表的代码(仅刷新一次):setTimeout只适用于一种功能

function refreshTable() { 
    $('#tablefill').load('table.php', function(){ 
     table1refr=setTimeout(refreshTable, 10000); 
    $.each(selected, function(index, value) { 
     document.getElementById(value).innerHTML = '-'; 
    }); 
    }); 
} 

这里是第二(刷新每10秒,因为它应该):

function refreshFileTable() { 
    $('#filetablefill').load('filetable.php', function(){ 
     table2refr=setTimeout(refreshFileTable, 10000); 
    }); 
} 

我试着开关的setTimeout给setInterval在他们两人的工作,但浏览器选项卡会完全冻结一分钟左右坐在页面上。如果你可以建议一种方法来防止这种情况,我很乐意使用setInterval。

+1

什么'selected'? – m90

+1

有没有必要有table1refr = setTimeout(refreshTable,10000);用setTimeout(refreshTable,10000)替换它。另外,.each()循环中的变量'selected'永远不会被初始化。 – frenchie

+1

@frenchie你不知道是否没有必要,也许他想从外面清除超时。 –

回答

1

如果你想使用的setInterval你不需要每次都设置它,试试这个

$(document).ready(function(){ 
    setInterval(refreshFileTable,1000); 
}) 

function refreshFileTable() { 
    $('#filetablefill').load('filetable.php', function(){ 
     // do nothing or remove this handler entirely 
     // if you were setting intervals over here you have created new interval in every 10 seconds   and thats how it hanged 
    }); 
} 
+0

我刚刚意识到我每次重新加载时都会创建一个新的setInterval。这好多了。万分感谢! – MOOcow102