私はMeteorに出くわしました。それはわくわくするように見えますが、それがどのように機能するかを知りたいと思っています。つまり、従来の Web アプリケーションは次のように機能します。データベースからデータを取得して Web ページに動的に追加するスクリプトがサーバー上にあり、ユーザーが送信したデータは他のスクリプトを介してデータベースに追加されます。
しかし、これらは Meteor でどのように機能するのでしょうか? Meteor のさまざまな部分は互いにどのように関連していますか?
私はMeteorに出くわしました。それはわくわくするように見えますが、それがどのように機能するかを知りたいと思っています。つまり、従来の Web アプリケーションは次のように機能します。データベースからデータを取得して Web ページに動的に追加するスクリプトがサーバー上にあり、ユーザーが送信したデータは他のスクリプトを介してデータベースに追加されます。
しかし、これらは Meteor でどのように機能するのでしょうか? Meteor のさまざまな部分は互いにどのように関連していますか?
Meteorは、HTML をリアルタイムでエレガントに更新するフレームワークです。
Meteor の優れた点は、テンプレートとデータ モデルを作成するだけでよいことです。通常の定型コードの残りの部分は隠されています。すべての同期コードを記述する必要はありません。
Meteor の主要部分は、これらの部分を使用して自分で構築できます。
データ モデルが更新されると自動的に更新されるテンプレートを提供します。これは通常、Backbone.js、Ember.js、Knockout.js、または別のツールを使用して行われます。
クライアント/サーバーのメッセージングは、 socks.jsやsocket.ioなどを使用してwebsockets経由で行われます。
MongoDB へのクライアント側の接続は非常に優れています。MongoDB サーバー ドライバーをクライアントにレプリケートします。残念ながら、最後に確認したところ、彼らはまだこのデータベース接続を保護する作業を行っていました。
レイテンシー補正は、最初にクライアント側モデルを更新してから、更新をサーバー サーバーに送信するだけです。
免責事項: この回答は、 Meteor Server用の JavaScript クライアント ライブラリであるMeteorについて説明しています。これはもともと質問のあいまいさのために追加されたものであり、同様の回答を検索している訪問者が直面している同様のあいまいさを明確にする目的に役立つ可能性がありますが、違いについては不明です.
Meteor JavaScript フレームワークについて読むには、 xer0xによるこの回答を参照してください。
Meteor Server のドキュメントに記載されているように、Meteor はCometの実装です。Comet はAJAXの対応物です。
AJAX の場合、通常、クライアントが要求を行う必要があると判断したときに要求を行います。サーバーから更新を取得するには、サーバーを呼び出す必要があります。5秒ごと。
Comet の場合、接続が永続的であるため、サーバーからの更新が高速になります。接続は AJAX のようにクライアントによって確立されますが、サーバーは何らかの更新があるか実行制限に達するまで応答しません (サーバー上のスクリプトには実行制限がある場合があります)。
Meteor の場合、特定のサーバー側コード (Meteor Server など) とクライアント上の適切なコード (この場合は Meteor クラスのように見えます) を必要とする一定のデータ ストリームを取得するだけです。
依存関係追跡システムのおかげで、ライブ データ更新のすべての魔法が起こっています。どのように機能するかについての説明は、ドキュメントのトラッカーセクションにあります。