如何清除匿名定时器

    xiaoxiao2023-03-25  4

    在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) }

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

    转载请注明原文地址: https://ju.6miu.com/read-1203485.html
    最新回复(0)