Javascript中的什么更快?是一堆小的setInterval循环,还是一个大循环?

Javascript中的什么更快?是一堆小的setInterval循环,还是一个大循环?,javascript,optimization,loops,performance,Javascript,Optimization,Loops,Performance,只是想知道是否值得制作一个单片循环函数,或者仅仅添加循环是必要的 大循环选项只是一个回调循环,通过add函数动态添加回调 添加一个函数如下所示 setLoop(function(){ alert('hahaha! I\'m a really annoying loop that bugs you every tenth of a second'); }); setLoop会将函数添加到单片循环中 那么,它在性能上是否有任何价值,或者我是否应该使用setInterval坚持使用许多小循环

只是想知道是否值得制作一个单片循环函数,或者仅仅添加循环是必要的

大循环选项只是一个回调循环,通过add函数动态添加回调

添加一个函数如下所示

setLoop(function(){
    alert('hahaha! I\'m a really annoying loop that bugs you every tenth of a second');
});
setLoop会将函数添加到单片循环中

那么,它在性能上是否有任何价值,或者我是否应该使用setInterval坚持使用许多小循环

游戏在这里

以及它所有的图书馆

如果我坚持使用单个循环,由于动画循环的数量,将有数千个循环


游戏是一个塔楼建造者和复杂的东西,如电梯和汽车/计程车。更不用说自动机的循环了,它控制诸如VIP和火灾之类的事件。当功能正常时(一年或两年),它将非常像Sim Tower,但iso公制而不是侧边滚动条。

我想你可以使用setInterval,保持单个循环并控制每个循环将给你更好的灵活性,除非每个项目都需要排队,但是,即使在这一点上,我也看不出从这一点上可以从何处获得重要的性能改进。

将它们都单独安排意味着在发生的一些子任务和其他子任务之间可能会发生一些事情(如处理用户交互事件等)。对于一个大的单片循环,循环的每个循环都将在将控制返回给用户输入之前执行该循环中的所有操作。因此,如果你真的在做很多事情,那么最好单独安排这些事情,让浏览器能够“更智能地”知道什么时候该做什么


例外情况是,如果您实际打算/要求在同一“周期”中发生的所有事情都不会相互抵消,在这种情况下,将需要“大循环”方法来确保它们都在完全相同的时间触发(或至少在执行时间允许的情况下尽可能紧密地触发).

如果没有足够的细节,您的问题不可能正确回答:

  • 你的整体回路有多大
  • 您希望添加多少个小循环
  • 这些小环有多小
  • 您试图通过循环实现什么
  • 小循环是否会相互作用,例如改变变量的关系或闭包的值
  • 是否有任何关于循环冗余的期望,以捕获丢失的数据,或者通过逻辑考虑进行转义

如果没有足够的细节,每个答案都是正确的,从而使你的问题变得毫无意义。

我明白了,好吧,那就别管它了。