1

本を一覧表示するMeteorアプリがあります。本をクリックするとその章のリストが表示され、章をクリックするとそのコメントのリストが表示されます。今、私はMeteorクライアントのパフォーマンスを最適化する方法を見つけようとしています。

私の主な関心事は、コレクションをどのように構成する必要があるか、そしてサーバーに最初に送信するデータを知らせる方法があるかどうかです。私はNoSQLを初めて使用しますが、Mongoの正しいアプローチは、章を本のサブドキュメントにし、コメントを章のサブドキュメントにすることだと思われます。

ただし、本のリストを表示するためだけに、すべての章とコメントがクライアントデータベースに読み込まれるまでクライアントが待機する必要はありません。リレーショナルデータベース構成を使用できると思いますが、Meteorにブックテーブルを最初に送信させることができるかどうか、またはリレーショナルデータベースでMeteorを使用すると他の問題が発生するかどうかはわかりません。

また、私はテキストを転送するだけなので、これはそれほど問題にはならないのではないでしょうか。どんな提案もありがたいです!

4

2 に答える 2

2

あなたが心に留めておくべき2つの原則があります

  • 毎回すべてを公開する必要はありません
  • サブスクライブするのはクライアントであり、これが順序を決定します

章のない本のリストを公開するには、次のようなクエリを使用できます

Meteor.publish( "booksList", function () {
   return Books.find( {}, {fields: {bookName: 1}} );
} );

これにより、_idとbookNameの2つの属性のみを持つコレクションが返されます。

2回目の発行では、すべてを送信できますが、一度に1冊の本のみを送信できます。

Meteor.publish( "fullBook", function ( bookId ) {
   return Books.find( {_id: bookId} );
} );

クライアントでは、結果を使用する前に、公開が行われるのを必ず待つ必要があります。

もちろん、これはすべてテストされていません。バグをお詫び申し上げます。

于 2013-03-24T20:19:46.900 に答える
0

必要なファイルのみを公開する必要があります。そうしないと、アプリケーションの速度が低下し、このリンクを参照できなくなります。

于 2017-09-05T06:07:17.377 に答える