我一直在尝试找出一种在更改更大数据集上的计算属性的依赖关系时加快渲染的方法。
此处示例:http: //emberjs.jsbin.com/IKicoBa/1/edit
你会注意到大约有。启用和禁用一行时有 3-5 秒的延迟。我已经测试了过滤混合和名称排序,它们似乎几乎是即时计算的。渲染 DOM 更改似乎是一个问题。
任何见解将不胜感激。
我一直在尝试找出一种在更改更大数据集上的计算属性的依赖关系时加快渲染的方法。
此处示例:http: //emberjs.jsbin.com/IKicoBa/1/edit
你会注意到大约有。启用和禁用一行时有 3-5 秒的延迟。我已经测试了过滤混合和名称排序,它们似乎几乎是即时计算的。渲染 DOM 更改似乎是一个问题。
任何见解将不胜感激。
我认为您不需要在数据中循环两次,我的意思是,您在这段代码中已经有了一个 if:
{{#each obj in sortedObservations itemController='observationContainer'}}
<div class='observation-container row'>
{{#if isActive}}
<div {{action 'disable'}} class='toggleActive'>Deactivate</div>
{{else}}
<div {{action 'enable'}} class='toggleActive'>Activate</div>
{{/if}}
<div class='observation-participant-name'>{{obj.participant.first_name}}</div>
所以,如果你已经有一个 if 来区分活动和非活动,为什么要循环两次?因此,只需更改循环以遍历所有排序数据(我认为是 sortedObservations),就是这样,您还可以删除活动/非活动观察属性,这也将提高性能。