【发布时间】:2019-10-20 06:05:31
【问题描述】:
当用户单击我网站上的导航按钮时,他们调用.load(),即$("#main_window").load("file.php"); 如果 file.php 包含 JavaScript 以及 setInterval 计时器,那么如果用户多次单击导航按钮,他们会'将创建多个setIntervals。如何停止这种情况并且始终只有一个计时器?
获取计时器的 ID 没有帮助,因为.load 会重置全局变量。因此,我无法阻止重复 .load() 上的多个计时器。
var myVar;
console.log(myVar); // will be undefined when .load() calls this file again.
myVar = setInterval(reload, 5000);
console.log(myVar); // A new ID will be created on each .load(), but all old instances will continue to fire
function reload() {
$(tableName).DataTable().ajax.reload(null, false);
console.log("reloaded");
}
Console.log 输出:带有两个.loads():
未定义
27
未定义
34
【问题讨论】:
-
我不想停止所有超时,因为我的网站上有其他用于其他目的的超时。
标签: javascript php jquery