これは私の問題です。Meteorのサブスクリプションの重複はパフォーマンスを悪化させますか?
ノートパッドにメモを保存できるアプリがあります。
現在、ユーザーがメモ帳をクリックすると、そのメモ帳を最初に5つのメモとして返す文書を購読します。
ユーザーが新しいメモ帳に移動するたびに、新しいサブスクリプションが設定され、そのメモ帳の5つのメモがminimongoになります。だから、minimongoは一度にメモコレクションに5つのメモしか持っていません。
ユーザーエクスペリエンスを向上させるために、アプリケーション全体の初期読み込みを変更しましたので、すべてのメモ帳と最初の5つのメモメモ帳ごとにだから私たちはミニモォで、常にメモの数(5×(メモ帳の数))を持っています。
初期荷重は少し重いですが、それ以降はノートパッド間を移動する方がはるかに高速です。
私はを購読しています。これはユーザーのメモ帳を返し、メモ帳ごとに5つのメモを返します。
実際にメモ帳をクリックすると、myNotepadInfo
に登録され、メモ帳の最初の5桁も返されます。最初のサブスクリプションはすでにこの情報を取得しているため、実際にはminimongoのドキュメントは変更されません。しかし、私はまだmyNotepadInfo
を購読したいと思っています。なぜなら、テンプレートのサブスクリプションに依存するより多くのノートメカニズムをロードしているからです。
私のアプリはこれらの変更を完全に処理していますが、実際に何が起きているのかわかりません。変更後のメモ帳の読み込み方法には具体的な違いはありません。
基本的に私は最初のサブスクリプションと重複する2番目のサブスクリプションを持っています。
2番目のサブスクリプションが最初のサブスクリプションと重複しているように見えますが、クライアントへのドキュメントの転送が少なくてすみますので、高速にする必要がありますか?
[meteor documentation](https://docs.meteor.com/api/pubsub.html#Meteor-subscribe): '*ただし、実行関数の次の反復が同じレコードセットに登録されている場合(同じ名前とパラメータ)、Meteorはスマートで、無駄な購読/再購読をスキップすることができます。* ' 起動時にすべてを購読するのは良い方法ではないと思います。あなたの読み込み時間は、多くのメモ帳があれば強くなります。だからこそサブスクリプションが必要です。先に動的なロード/検索を実装したい場合は、[簡単:検索](https://github.com/matteodem/meteor-easy-search)を選択するのが良い選択です。 –