大規模なデータセットが原因で発生する問題の解決策を探しています。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分以上からわずか数秒に短縮されました。次に、要求された数のアイテムをスライスして、コンテンツにロードします。これは、データを簡単に並べ替えることができないという犠牲を払って、任意の数のアイテムに対してうまく機能します。