随着时间的推移,JavaScript 的 setInterval() 方法运行是否会消耗明显的处理能力

does javascript's setInterval() method running consume noticeable processing power over time?

本文关键字:是否 运行 能力 处理 方法 时间 setInterval JavaScript      更新时间:2023-09-26

我想知道浏览器中运行的多个setInterval()实例的周期性(每分钟)活动是否真的会显着影响浏览器和/或操作系统性能。

如果它们引人注目,在什么样的时间范围内?在浏览器上打开此网页数小时、数天、数周?

谢谢tim

为了回答你的问题,setInterval()定义的函数是缓存的,所以除了性能影响之外(如果函数真的很密集),应该不会对浏览器/操作系统产生明显的影响。

更新:如果它们在最初的几分钟内不明显(假设您的代码没有巨大的内存泄漏),它们应该能够无限期地运行。

setInterval的真正问题是你的任务花费的时间超过了你给它的间隔。我选择始终使用setTimeout。但是如果这是一个长间隔/简单的任务,setInterval 应该没问题。

// update a clock 
function updateClock() {
    $('#clock').text(new Date());
}
function updateClockSetTimeout(interval) {
    updateClock();
    setTimeout(updateClockSetTimeout, interval);
}
function updateClockSetInterval(interval) {
    setInterval(updateClock, interval);
}

最好的方法是存储初始运行时间,以便您可以根据此任务实际完成的时间安排下一个运行时间。