4

Meteor アプリのすべてのクライアントに 10,000 個のドキュメントの同じコレクションを送信する必要があるとします。

大まかに言えば、サーバーはすべてのクライアント サブスクリプションに対して何らかの簿記を行っていることを認識しています。つまり、クライアントに適切な変更を送信できるように、サブスクリプションの状態を追跡します。ただし、各クライアントが同じ大規模なデータ セットを持ち、各ドキュメントに多くのフィールドがある場合、これは非常に非効率的です。

以前は、最初のクエリが公開され、二度と変更されなかった「静的」パブリッシュを送信する方法があったようです。これは、これを行うためのはるかに効率的な方法のようです。

現在のバージョンの Meteor (0.6.5.1) でこれを行う正しい方法はありますか?

編集: 明確にするために、この質問はクライアント側の反応性に関するものではありません。それは、クライアント コレクションのサーバー側追跡のオーバーヘッドを削減することです。

関連する質問: meteor にコレクションが静的であることを伝える方法はありますか (決して変更されません)?

更新: Meteor 0.7 以前でこれを行うと、重大なパフォーマンスの問題が発生することが判明しました。これを回避する方法については、https://stackoverflow.com/a/21835534/586086を参照してください。

4

6 に答える 6

1

googlegroups で既に指摘したように、静的データをクライアントに送信するには Meteor Method を使用する必要があります。
そして、非同期の頭痛の種なしでメソッドを操作するためのこのきちんとしたパッケージがあります。

于 2015-07-25T22:54:10.747 に答える
-1

新しい高速レンダリング パッケージにより、クライアント コレクションへの 1 回限りの公開が可能になります。

var staticData = new Meteor.Collection ('staticData');

if ( Meteor.isServer ){

  FastRender.onAllRoutes( function(){
    this.find( staticData, {} );
  });
}
于 2014-01-12T04:04:48.580 に答える