只是想知道是否值得做一个单片循环函数,或者只是在需要的时候添加循环。
大循环选项只是一个用add函数动态添加的回调循环。
添加一个函数如下所示
setLoop(function(){
alert('hahaha! I\'m a really annoying loop that bugs you every tenth of a second');
});setLoop会将该函数添加到单片循环中。
那么,这在性能上是否有价值,或者我应该只使用setInterval进行大量的小循环吗?
游戏是这样的
http://thinktankdesign.ca/metropolis/
以及它的所有库
http://thinktankdesign.ca/metropolis/scripts/base.js
http://thinktankdesign.ca/metropolis/scripts/menu.js
http://thinktankdesign.ca/metropolis/scripts/grid.js
http://thinktankdesign.ca/metropolis/scripts/cursor.js
http://thinktankdesign.ca/metropolis/scripts/game_logic/controls.js
http://thinktankdesign.ca/metropolis/scripts/game_logic/automata.js
如果我坚持使用单个循环,由于动画循环的数量,将会有数千个循环。
这个游戏是一个塔楼建造者和复杂的东西,如电梯和汽车/peds。更不用说自动机的循环,控制VIP和火灾等事件。当功能正常时(一两年),它将很像模拟铁塔,但它是等距的,而不是侧滚轴。
发布于 2010-04-27 13:30:40
将它们全部单独调度意味着在一些子任务和另一些子任务之间可能会发生一些事情(比如处理用户交互事件等)。使用一个大的单片循环,循环的每个循环将执行该循环上的所有内容,然后将控制返回给用户输入。因此,如果你真的要做很多事情,最好是单独安排它们,让浏览器更“聪明”地知道什么时候该做什么。
例外情况是,如果您实际上打算/要求在同一“周期”中发生的所有事情都不相互偏移,在这种情况下,将需要“大循环”方法来确保它们都在完全相同的时间触发(或者至少在执行时间允许的情况下尽可能接近)。
发布于 2010-04-27 13:30:00
我可以想象你可以只使用setInterval,保持单独的循环来控制每个循环将会给你更好的灵活性,除非每个单独的项目都需要排队,但即使在这一点上,我也看不出你会从哪里获得重要的性能改进。
发布于 2010-04-27 13:42:19
如果没有足够的细节,你的问题是不可能正确回答的:
进行转义
没有足够的细节,每个答案都是正确的,从而使你的问题变得毫无意义。
https://stackoverflow.com/questions/2718920
复制相似问题