问题描述
我正在使用jQuery .load为我的网站构建一个自动刷新评论部分。所以我使用javascript'setTimeout'计时器来检查新的评论。
Im building an automatic refreshing comment section for my website using jQuery .load. So I am using a javascript 'setTimeout' timer to check for new comments.
但是做了一些事情,比如更改评论页面或删除(全部使用ajax),一些旧的计时器继续运行,即使我在加载新的ajax内容之前使用了clearTimeout。
But after doing some stuff like changing comment pages or deleting (all using ajax), a few old timers keep running, even though I used clearTimeout before loading new ajax content.
当我加载新的ajax内容时,有没有办法清除所有的javascript计时器?
Is there some way to clear ALL javascript timers when I load new ajax content?
推荐答案
javascript中没有允许您清除所有计时器的常规功能。您需要跟踪您创建的所有计时器。为此你可以使用全局数组:
There's no general function in javascript that allows you to clear all timers. You will need to keep track of all timers you create. For this you could use a global array:
var timers = [];
...
// add a timer to the array
timers.push(setTimeout(someFunc, 1000));
...
// clear all timers in the array
for (var i = 0; i < timers.length; i++)
{
clearTimeout(timers[i]);
}
这篇关于有没有办法一次清除所有JavaScript计时器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!