12

MeteorFrameworkのスクリーンキャストを見たことがある。データベースを変更すると、ブラウザのデータがシームレスに変更されることに気付きました。通常、AJAXは数秒ごとにページの一部をリロードしますが、ここではブラウザのリロードに気づきませんでした。彼らはMeteorでどのようにそれを達成しましたか?Node.jsに依存していますか?

更新:TobyCatlinは別の興味深い質問を提起します。Meteorはさまざまなブラウザをどのように処理しますか?

4

2 に答える 2

17

Sessionと(Meteor APIから)の両方を使用しMeteor.autosubscribeて、変更がクライアントに反映されるようにします。

これらのMeteorAPIは、SockJSによるXHR(XMLHttpRequest)を使用します。SockJSはWebSocketエミュレーションユーティリティです。そのため、サーバーで何かが変更された場合、SockJSはXHRが送信され、変更されたデータがJSON応答に含まれるようにします。

はい、MeteorはNode.jsに完全に依存しています。Meteorドキュメントから:

Meteorアプリケーションは、クライアントWebブラウザー内で実行されるJavaScript、Node.jsコンテナー内のMeteorサーバー上で実行されるJavaScript、およびサポートするすべてのHTMLフラグメント、CSSルール、および静的アセットを組み合わせたものです。Meteorは、これらのさまざまなコンポーネントのパッケージ化と送信を自動化します。また、ファイルツリーでこれらのコンポーネントを構造化する方法については非常に柔軟です。

唯一のサーバー資産はJavaScriptです。Meteorは、クライアントとパブリックサブディレクトリの下にあるものを除いて、すべてのJavaScriptファイルを収集し、ファイバー内のNode.jsサーバーインスタンスにロードします。Meteorでは、サーバーコードは、Nodeで一般的な非同期コールバックスタイルではなく、リクエストごとに1つのスレッドで実行されます。線形実行モデルは、Meteorアプリケーションの一般的なサーバーコードにより適していることがわかります。

出典:http ://docs.meteor.com/およびhttps://github.com/meteor/meteor

于 2012-04-11T14:11:53.400 に答える
5

ブラウザがデータを要求しなくても、サーバーがデータをブラウザにプッシュできるようにする手法がいくつかあります。このような技術の用語はComet[wikipedia.org]であり、ほとんどの技術はAJAXに関連しています(Cometと呼ばれる漂白剤とAjaxと呼ばれる洗浄剤がありました)。接続タイプには、ロングポーリング、ストリーミングXHR、永久フレーム、サーバー送信イベント、WebSocketなどがあります。Socket.IOは、ストリーミングサーバーへの接続タイプを提供する優れたライブラリです。

Comet接続をサポートするサーバーが必要です。あなたは現在のものをグーグルで検索することができますが、私の頭のてっぺんから:node.js、tornado、cometd、orbited、Jettyストリーミング

Metorは、ブラウザの機能に応じて異なる接続タイプを使用すると思います。たとえば、ChromeのWebSocketやIEの長いポーリングなどです。誰かがより具体的な答えを与えることができれば私は興味があります

于 2012-04-11T14:05:34.387 に答える