我有一个 Ember 应用程序,它呈现一个约 200-300 行的表。我尝试实现类似 Tablesorter 的功能,但遇到了非常糟糕的性能。
应用程序相关部分的概述如下:有一个对象集合,一个ArrayController
and CollectionView
。CollectionView#content
绑定到ArrayController#arrangedContent
并通过设置ArrayController#sortProperties
属性进行排序。
为了方便起见,我设置了一个 JS 小提琴:http: //jsfiddle.net/496tT/1/。在 JS 控制台的 Chrome 中,您可以看到原始排序大约需要 5 毫秒,而表格排序大约需要 1000 毫秒。
在我当前的实现中,EmberarrangedContent
会在更新时重新呈现所有视图。我认为可以通过对项目视图进行排序来加快排序,CollectionView
从而以正确的顺序有效地将视图重新附加到 DOM。但我不知道如何在 Ember.js 中正确执行此操作。
有什么想法吗?
PS——这里有一个副本——https: //stackoverflow.com/questions/12915647/table-sort-with-emberjs-clear-and-rebuild-the-table——但它没有答案;在这个问题中,为了方便起见,我设置了一个小提琴。