随着时间的推移,JavaScript 的 setInterval() 方法运行是否会消耗明显的处理能力
does javascript's setInterval() method running consume noticeable processing power over time?
我想知道浏览器中运行的多个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);
}
最好的方法是存储初始运行时间,以便您可以根据此任务实际完成的时间安排下一个运行时间。
相关文章:
- PhantomJS - 检查javascript函数是否正在运行的任何方法
- 如何检查函数是否将运行或可用
- 检查在使用节点运行程序时是否给出ARGV
- 检查grunt是否在详细模式下运行
- 是否可以从javascript文件中将量角器作为模块运行
- Chrome扩展:是否有一种方法可以运行JavaScript来获取页面上的内部html,并将其保存到扩展中的变量中
- 是否可以在node.js依赖项上运行脚本
- stopPropagation是否还会阻止同一元素上的其他处理程序运行
- 什么决定了 Node.js 应用是否保持运行
- 是否可以从在Firefox或IE的网页中运行的Javascript启动Windows进程
- 将函数分配给javascript中的变量是否运行该函数
- 流星 - 检查您是否运行了 2 个版本的 React
- GWT 动画在从 websocket 调用时是否运行
- 在JS中是否有可能从浏览器的控制台中检测是否运行了任何JS ?
- 当子类继承并挂载父类时,父类是否运行生命周期方法?
- Node是否运行所需模块中的所有代码?
- 如何通过Office .js查看Office AddIn主机是否运行Outlook应用
- 如何检测Chrome检查元素是否运行
- 在整个脚本完成解析之前是否运行javascript函数调用
- 记住之前是否运行过javascript,如果是[EnjoyHint.js]就不要再运行它