javascript的setInterval()方法运行会随着时间的推移消耗显着的处理能力吗?

时间:2012-05-04 23:44:23

标签: javascript browser setinterval

我想知道在浏览器中运行的多个setInterval()实例的周期性(每分钟)活动是否告诉时间或者更多的劳动密集型活动实际上是否会显着影响浏览器和/或OS性能。

如果它们明显,在什么样的时间范围内?在浏览器上打开此网页的时间,天数,周数?

感谢, 添

2 个答案:

答案 0 :(得分:2)

为了回答你的问题,setInterval()定义的函数被缓存,所以除了性能命中之外(如果函数非常密集),对浏览器/操作系统应该没有明显的影响。

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

答案 1 :(得分:1)

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

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