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