Ember.js 如何在通知关系更改之前等待侧加载结束
当我计算依赖于关系的属性时,余烬数据的性能有一个很大的问题 当从服务器加载对象时,Ember要求服务器加载computed属性的依赖关系来计算它 好的,这是好行为 但是,当我加载与对象的关系(使用JSON API进行侧加载)时,Ember不会等到关系(侧)加载结束后才通知更改 因此,通过这个计算关系:Ember.js 如何在通知关系更改之前等待侧加载结束,ember.js,ember-data,Ember.js,Ember Data,当我计算依赖于关系的属性时,余烬数据的性能有一个很大的问题 当从服务器加载对象时,Ember要求服务器加载computed属性的依赖关系来计算它 好的,这是好行为 但是,当我加载与对象的关系(使用JSON API进行侧加载)时,Ember不会等到关系(侧)加载结束后才通知更改 因此,通过这个计算关系: my_computed_relation: Ember.computed.filterBy('my_relation', 'attribute', false) 即使我用对象加载“我的关系”,我
my_computed_relation: Ember.computed.filterBy('my_relation', 'attribute', false)
即使我用对象加载“我的关系”,我的计算关系也会要求服务器在对象初始化结束之前加载“我的关系”。关系被加载两次
您有解决性能问题的想法吗
(余烬:1.13.3-余烬数据:1.13.12)
Frederic如果此计算属性恰好在短时间内得到通知,您可以在observer函数中使用
Ember.run.debounce()
,并自行实现筛选函数
例如:
mcrObserver: Ember.observer('my_relation', function() {
const filterRelation = () => {
let relation = this.get('my_relation');
if (!relation) {
return;
}
// ... your implementation of filter
this.set('my_relation_computed', result); // when you finally have result
}
Ember.run.debounce(this, filterRelation, 500); // 500 is time in ms
})
谢谢你,丹尼尔。我将测试你的解决方案。目前,我通过在筛选器之前加载所有数据来解决问题。