如何清除匿名定时器

在JS中,并没有查看所有定时器的接口,所以无法知道程序中使用了多少个定时器,更无法知道定时器对应的执行函数,在这种情况下,我们一来难以清除匿名定时器,二来难以一次清除所有的定时器。

幸好,现在主流的浏览器(包括最新的Chrome、Firefox以及ID)都默认给定时器分配了一个较小的ID,数字一般小于9999。利用这个特性,我们可以很轻易地清除掉所有的定时器,包括匿名定时器与命名定时器。

示例如下:

//  首先定义两个定时器
 var h1 = document.querySelector("h1"),
     h2 = document.querySelector("h2"),
     i = 0;
//  定时器1     
 setInterval(function() {
    h1.innerHTML = i ++;
 }, 1000)
//  定时器2
 var h2Timer = setInterval(function() {
    h2.innerHTML = i;
 }, 1000)

所涉及到HTML如下:

<h1>0</h1>
<h2>0</h2>

充分利用定时器的匿名ID特性,一次性清除所有的定时器,代码如下:

for(var i = 0; i < 9999; i++) {
    clearInterval(i)
}

无论何时执行上面的代码,浏览器中的所有定时全部同时停止执行。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值