2016-09-07 9 views
0

これは私の理解が不足している可能性があるので、非常に簡単な質問かもしれませんが、サーバーとクライアントの両方で2回クエリを実行する必要がある場合は、すべてのコレクションデータクライアント上で1つのクエリを実行するだけですか?流星 - すべてのコレクションデータを公開しないのはなぜですか?

明らかに私はユーザーのコレクションでこれを行うことを意味するわけではありませんが、ブログの投稿コレクションをお持ちの場合、これは有益でしょうか?

すべての投稿データを公開し、購読してクライアントに必要なすべてのクエリを実行して、必要なデータを取得します。

+0

メモリには制限がありません。 –

答えて

4

流星がデフォルトでautopublishを追加するので、すべてを「開発」環境に適していると公開していますが、これは「実動」環境にいくつかの誤りがあります。この2つのポイントが重要であることがわかります

  1. セキュリティ:考えられるのは、必要なだけ多くのデータをクライアントに提供することです。あなたはクライアントを信頼することはできませんし、クライアントがそのデータを使用するかも知れません。あなたのユースケースでは、単純なブログ投稿の場合、これは重大なリスクではないかもしれませんが、eコマースアプリケーションにとって重大なリスクになる可能性があります。最後に、ハッカーがデータを使用してコード内のバグを活用して、厄介なことをしたいとします。
  2. データオーバーヘッド:サブスクリプションの場合は、通常waitOnが使用されます。したがって、すべてのデータがクライアントに利用可能になるまで、テンプレートはレンダリングされません。データ量が非常に多い場合、レンダリングにはかなりの時間がかかります。したがって、この時間を最適化するために、データを「必要なものだけ」のステージに保持することをお勧めします。