javascripttimeoutsetinterval

Viewing all the timeouts/intervals in javascript?


I'm writing an application that utilizes JavaScript timeouts and intervals to update the page. Is there a way to see how many intervals are setup? I want to make sure that I'm not accidentally going to kill the browser by having hundreds of intervals setup.

Is this even an issue?


Solution

  • I don't think there is a way to enumerate active timers, but you could override window.setTimeout and window.clearTimeout and replace them with your own implementations which do some tracking and then call the originals.

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

    Of course, you might not always call clearTimeout, but this would at least give you some way to track what is happening at runtime.