2016-11-26 14 views
0

ページ分割が必要なMeteorアプリケーション(無限スクロール)に取り組んでいます。ユーザーが下にスクロールすると、データの次のチャンクを Collection.find({"offset": {$gte: currentOffset}}, {limit: limit})で引っ張ります。このアプローチの問題点は、これ以降、以前の文書は使用できなくなったことです。私は古いものを維持するためにオフセットを削除することができますが、それは1000エントリを引っ張った後にアプリケーションを遅くします。私はコンポーザーコンテナでパブリッシュ/サブスクライブを使用します。リミットとオフセットを使用して新しいチャックの上に以前のコレクションを反応的に保つ方法はありますか?前もって感謝します。Meteor mongoページ区切り

+0

[this](https://www.discovermeteor.com/blog/template-level-subscriptions/)を見ましたか? – blueren

+0

ねえ。提案していただきありがとうございます。私はその記事を見て、あなたが見ることができるように、データを引っ張るためのオフセットがない、つまり、大きなデータを引っ張った後に遅くなることを意味します。 – user2646559

答えて

0

デフォルトのMeteor.subscribeの代わりにkadirahq/subs-managerを使用してデータを購読することができます。このパッケージは、アプリの掲載結果を向上させるために、購読内容とすべてのデータをキャッシュします。

しかし、多くのデータをクライアントに送信しても1000個以上のドキュメントを送信する場合でも、すべてのドキュメントをメモリに保存しておく必要があるため、アプリケーションは遅くて遅くなります彼らの変化。

したがって、クライアントに公開するドキュメントの最大数(IMO、300-400は問題ありません)を制限する必要があります。もっと必要な場合は、別の方法でページネーションを行うことを検討してください。

+0

ねえ。返信いただきありがとうございます。私はそれを試しましたが、私は目立ったパフォーマンスの向上を感じなかった。このアプリ自体は、このスクロールした> 1000件のエントリがないとかなり良いパフォーマンスを示します。 – user2646559