一尘不染

查看JavaScript中的所有超时/时间间隔?

javascript

我正在编写一个利用JavaScript超时和间隔来更新页面的应用程序。有没有办法查看设置了多少间隔?我想确保不会因设置数百个间隔而意外杀死浏览器。

这甚至是个问题吗?


阅读 303

收藏
2020-05-01

共1个答案

一尘不染

我不认为有一种方法来枚举活动的定时器,但是你可以重写window.setTimeout,并window.clearTimeout与自己的实现其做一些跟踪,然后调用原件替换它们。

window.originalSetTimeout = window.setTimeout;
window.originalClearTimeout = window.clearTimeout;
window.activeTimers = 0;

window.setTimeout = function(func, delay) {
    window.activeTimers++;
    return window.originalSetTimeout(func, delay);
};

window.clearTimeout = function(timerID) {
    window.activeTimers--;
    window.originalClearTimeout(timerID);
};

当然,您不一定总是调用clearTimeout,但这至少可以为您提供某种方式来跟踪运行时发生的情况。

2020-05-01