首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在javascript中查看所有的超时/间隔?

在javascript中查看所有的超时/间隔?
EN

Stack Overflow用户
提问于 2009-05-13 15:21:29
回答 5查看 89.3K关注 0票数 99

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

这是一个问题吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-05-13 15:27:48

我不认为有一种方法可以枚举活动计时器,但您可以覆盖window.setTimeoutwindow.clearTimeout,并将其替换为您自己的实现,这些实现进行一些跟踪,然后调用原始实现。

代码语言:javascript
复制
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,但这至少会给您提供一些方法来跟踪运行时发生的事情。

票数 87
EN

Stack Overflow用户

发布于 2011-09-20 23:38:29

由于Paul只介绍了setTimeout,我想我应该共享setInterval/clearInterval的计数器。

代码语言:javascript
复制
window.originalSetInterval = window.setInterval;
window.originalClearInterval = window.clearInterval;
window.activeIntervals = 0;
window.setInterval = function (func, delay)
{
    if(func && delay){
            window.activeIntervals++;
    }
    return window.originalSetInterval(func,delay);
};
window.clearInterval = function (intervalId)
{
    // JQuery sometimes hands in true which doesn't count
    if(intervalId !== true){
        window.activeIntervals--;
    }
    return window.originalClearInterval(intervalId);
};
票数 11
EN

Stack Overflow用户

发布于 2017-05-11 23:25:37

我们刚刚published了一个包来解决这个问题。

代码语言:javascript
复制
npm install time-events-manager

这样,您就可以通过timeoutCollection对象(以及通过intervalCollection对象查看和管理javascript的时间间隔)来查看和管理它们。

timeoutCollection.getScheduled(); timeoutCollection.getCompleted(); timeoutCollection.getAll();

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/858619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档