私は200〜300行のテーブルをレンダリングするEmberアプリケーションを持っています。私はTablesorterのような機能を実装しようとしましたが、パフォーマンスは非常に悪いです。Ember.jsで_fast_テーブルソートを行う方法は?
アプリケーションの関連部分の概要は次のとおりです。オブジェクトのコレクションはArrayController
とCollectionView
です。 CollectionView#content
はArrayController#arrangedContent
にバインドされ、ソートはArrayController#sortProperties
プロパティを設定することによって行われます。
便宜のためにJSフィドルを設定しました:http://jsfiddle.net/496tT/1/。 JSコンソールのChromeでは、未処理のソートには約5ms、表のソートには約1000msかかることがわかります。
私の現在の実装では、arrangedContent
が更新されるとEmberはすべてのビューを元に戻します。私は並べ替えによって速度を上げることができると思いますアイテムビューCollectionView
の範囲内にあるので、DOMへのビューを効果的に正しい順序で再接続します。しかし、私はEmber.jsでこれを正しく行う方法がわかりません。
どのような考えですか?
PS - SO-https://stackoverflow.com/questions/12915647/table-sort-with-emberjs-clear-and-rebuild-the-tableには重複がありますが、答えはありません。この質問で私は便宜のためにフィドルを設定しました。