javascript - setTimeout 仅适用于一个函数

标签 javascript jquery settimeout

我有两个表,我想经常刷新它们。两者都使用几乎相同的 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 
    });
}

关于javascript - setTimeout 仅适用于一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18046423/

相关文章:

javascript - while 循环中的 setTimeout

javascript - 使用 Javascript 注入(inject) HTML 代码

javascript - 如何使用 JSON 数据进行动态星级评分

Jquery/AJAX 动态加载内容未本地加载

javascript - 每次用户刷新页面时不同的JS动画

javascript - onBlur 杀死 onClick 但如果使用 setTimeout 则不会

javascript - 尝试使用映射将数组从 JSON 映射到淘汰赛

javascript - DOM 中没有选择器标记的 Angular 2 组件

javascript - 如何创建富文本编辑器

javascript - 浏览器 web api 在 Javascript 中运行在哪里?