我正在编写一个利用JavaScript超时和间隔来更新页面的应用程序。有没有办法查看设置了多少间隔?我想确保不会因设置数百个间隔而意外杀死浏览器。
这甚至是个问题吗?
我不认为有一种方法来枚举活动的定时器,但是你可以重写window.setTimeout,并window.clearTimeout与自己的实现其做一些跟踪,然后调用原件替换它们。
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,但这至少可以为您提供某种方式来跟踪运行时发生的情况。
clearTimeout