Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 加速余烬渲染-余烬计算属性列表_Javascript_Arrays_Sorting_Ember.js_Ember Data - Fatal编程技术网

Javascript 加速余烬渲染-余烬计算属性列表

Javascript 加速余烬渲染-余烬计算属性列表,javascript,arrays,sorting,ember.js,ember-data,Javascript,Arrays,Sorting,Ember.js,Ember Data,我一直在试图找到一种方法,在更改较大数据集上计算属性的依赖关系时加快渲染速度 示例如下: 您会注意到,启用和禁用行时大约有3-5秒的延迟。我已经测试了过滤mixin和名称排序,它们似乎几乎是即时计算的。这似乎是呈现DOM更改的问题 如果您有任何见解,我们将不胜感激。我认为您不需要在数据中重复两次,我的意思是,您在这段代码中已经有了if: {{#each obj in sortedObservations itemController='observationContainer'}} <di

我一直在试图找到一种方法,在更改较大数据集上计算属性的依赖关系时加快渲染速度

示例如下:

您会注意到,启用和禁用行时大约有3-5秒的延迟。我已经测试了过滤mixin和名称排序,它们似乎几乎是即时计算的。这似乎是呈现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>
{{#SortedObjections itemController='observationContainer'中的每个obj}
{{#如果是活动的}
使停止工作
{{else}
激活
{{/if}
{{obj.participant.first_name}

那么,如果您已经有了区分活动和非活动的if,为什么要循环两次呢?因此,只需在所有已排序的数据(我认为是sortedObservations)中更改循环,也就是说,您还可以删除活动/非活动的观测属性,这也将提高性能。

如果您想最后显示非活动的观测,请更改sort to sort函数。感谢您的查看。我会尝试一下,虽然当我测试时,我没有看到任何改进,只是完全删除了非活动列表、过滤器等。我对你最后的评论有点困惑,是否将排序功能更改为排序?你的意思是,在我的sortedObservations属性中对非活动项进行排序吗?对,我的意思是,你需要在列表底部对非活动项进行排序,对吗?然后把它们也分类。我删除了第二个循环,即在非活动列表中循环的循环,然后,我将第一个循环更改为在所有列表中循环,这大大提高了性能。您介意将我链接到JSBin吗?我没有看到使用mixin进行过滤的方法。