8

大規模なデータセットが原因で発生する問題の解決策を探しています。Emberは、データの処理中にブラウザをロックする必要があります。

ページ付けについては、tchakの便利なページ付けミックスインを使用て、バックエンドAPIからロードされている約13,000以上のオブジェクトをページ付けしています。

Ember Dataオブジェクトには、ID、1つのテキスト属性、およびいくつかの数値属性が含まれています。

問題は、ブラウザがデータの処理を完了するまでに1分近くかかり、その間ブラウザが使用できなくなることです。Firefoxは、スクリプトがすべてのブラウザリソースを使い果たしているという警告を発行し、スクリプトを終了するように提案します。

オブジェクトを範囲ごとに要求する独自のページネーションミックスイン、つまりアイテム10〜25を作成しました。これは、並べ替えという1つの重大な制限を除いて、一般的にうまく機能します。データを並べ替えるには、バックエンドに追加のリクエストを行い、オブジェクトの一部がすでに読み込まれている場合でも、オブジェクトを再読み込みする必要があります。

バックエンドAPIに追加のリクエストを行わずに、すべてのコンテンツを事前に読み込んで、並べ替えのプロセスを簡素化できるようにしたいと思います。この問題に取り組む方法についてのガイダンスを探していますが、完全に代替のアプローチを受け入れています。

他に何もないとしても、Emberがすべての13kオブジェクトをArrayControllerにロードしようとするときに、Emberがブラウザーに配置するリソースフットプリントを減らすことは可能ですか?


最新のEmberデータ(現在はリビジョン10)でEmber1.0.0-pre2を使用しています。

バックエンドにはRails3.2.8があります。


更新データを。以外のArrayControllerプロパティにロードすることで、この問題を回避しましたcontent。これにより、読み込み時間が1分以上からわずか数秒に短縮されました。次に、要求された数のアイテムをスライスして、コンテンツにロードします。これは、データを簡単に並べ替えることができないという犠牲を払って、任意の数のアイテムに対してうまく機能します。

4

2 に答える 2

5

EmberTableをご覧になることをお勧めします。デモでは、500 000レコードのテーブルが表示され、非常に高速に動作します。ソースコードを掘り下げることが役立つかもしれません。

于 2012-12-29T19:24:06.040 に答える
0

並べ替えを処理するデータベースからビューをクエリできませんか?クエリ文字列に並べ替え条件を渡しますか?sortBy = name&sortAsc = true

于 2013-04-26T13:38:25.067 に答える