我想更改CollectionView
更新的呈现计划(由{{each}}
创建),以便大插入不会长时间阻止UI线程。理想情况下,我想在50毫秒内渲染尽可能多的元素,然后将控制权传递回UI线程并设置超时以继续进一步渲染。看起来Ember中有一些工具用于实现自定义渲染缓冲区行为,但我不知道从哪里开始使用它。
这是一个jsfiddle基准测试,显示将500个元素插入阻止UI线程一段时间的列表中:
答案 0 :(得分:2)
我想找到一个更好的方法来做到这一点,但是现在我推迟了我填充ArrayController内容的速度。这是一个非常肮脏的例子。
for (var i = 0; i <= 999; i++) {
Ember.run.later(function() {
App.ArrayController.pushObject(App.Thing.create());
}, i * 3);
}
您可以通过仅维护视口中的项目内容列表来改进这一点。我喜欢你想要挂钩CollectionView的itemViewClass的渲染函数,只允许渲染一定数量的视图。