我不认为有一种方法来枚举活动的定时器,但是你可以重写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
,但这至少可以为您提供某种方式来跟踪运行时发生的情况。