Con*_*ham 6 performance ember.js
我目前正在观察一些Ember数组,如下所示:
observe_array: function() {
this.get("my_array").forEach(function(e,i) {
// do something
});
}.observes("my_array.@each");
Run Code Online (Sandbox Code Playgroud)
大多数情况下,如果更新my_array,则会一次添加多个元素.然而,观察者在添加每个元素时一个接一个地触发,这变得非常低效.无论如何更有效地做到这一点?基本上,我需要能够有一个基于"my_array"的变异数组
作为参考,my_array的实际大小将介于600-1200个元素之间."做某事"块涉及一些需要花费更多时间的操作 - 从字符串创建Date对象并将每个元素转换为json表示.
我没有做一个观察者,而是尝试了一个带有cacheable()方法/标志的属性,但是这并不能解决问题.
假设(通过注释)您的数组是一个 ember-data 填充的数组,您应该尝试观察array.isUpdating
属性。我通过这个获得了成功。
唯一的缺点是它仅在使用时设置.findAll()
!(所以Model.find()
)
归档时间: |
|
查看次数: |
922 次 |
最近记录: |