setTimeout仅适用于一个函数

setTimeout Only Working for One Function

本文关键字:一个 函数 适用于 setTimeout      更新时间:2023-09-26

我有两个表,我想每隔一段时间刷新一次。两者都使用几乎相同的javascript,只是一个有效,另一个无效
这是第一个表的代码(只刷新一次):

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。

如果你想使用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 
    });
}