有没有办法一次清除所有JavaScript计时器

有没有办法一次清除所有JavaScript计时器

本文介绍了有没有办法一次清除所有JavaScript计时器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用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计时器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-21 07:16