我正在使用 jQuery .load 为我的网站构建一个自动刷新评论部分。所以我使用 JavaScript 'setTimeout' 计时器来检查新评论。
但是在做了一些事情之后,比如更改评论页面或删除(全部使用ajax),一些旧计时器继续运行,即使我在加载新的ajax内容之前使用了clearTimeout。
当我加载新的 ajax 内容时,有没有办法清除所有 JavaScript 计时器?
最佳答案
警告:我的下面的代码有问题,主要是因为需求本身就有问题。我想知道你为什么要清除所有计时器。这会使您的代码破坏任何使用计时器的插件。这比您想象的要常见得多,当然除非您正在调试或享受乐趣,否则这并不重要。
<小时/>如果必须:
这是最糟糕的解决方案之一。然而,它揭示了 JavaScript 本身的潜在安全漏洞。但由于它可以正常工作(清除所有计时器),我认为分享它会很酷:
var maxId = setTimeout(function(){}, 0);
for(var i=0; i < maxId; i+=1) {
clearTimeout(i);
}
关于javascript - 有没有办法一次性清除所有 JavaScript 计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1896875/