我想优化我的应用程序中的渲染。我有以下循环:EmberJS:如何分割DOM的渲染?
stuff.forEach(function(content){
...
content.doUpdates(); // Generates a bunch of DOM updates
})
如果stuff
只有2或3个元素是一切正常,但当它有10个或更多,渲染开始锁定浏览器 - 这是正常的,因为它试图做所有的更新一次。
所以我想分割渲染。我最初的想法是把每个doUpdates
放在一个Ember.run.next
http://emberjs.com/api/classes/Ember.run.html#method_next(我不介意每个内容是分开渲染的)。但是“使用Ember.run.next预定的多个操作将合并到相同的稍后运行循环中”。
有没有推荐的方法来做到这一点?
谢谢。我不相信scheduleOnce会在这种情况下提供帮助 - 所有的更新仍然会发生在同一个循环中(与下一个相同)。除非我误解你将如何使用它?基本上我需要找到一种方法来执行不同循环中的每个“doUpdates”... – PJC