2012-02-17 27 views
0

毎分自動更新が必要なグリッドがあります。グリッドを非同期的に更新して、Webページがサーバーにリクエストを送信しないようにしたい。サーバだけが、新しく送信されたときにJSonデータをクライアントに伝えることができます。これは可能ですか?サーバーにpingを送信せずにクライアントにデータを送信できますか?HTTPリクエストを使用したHTTP応答

ありがとうございました。

答えて

0

いいえ何らかの種類のオープンソケットを使用する必要があります。これは、とにかく低レベルのping形式です。標準は、新しいデータをチェックするための頻繁ではあるが非常に短いJSON要求を単に持つことです。

編集 - WebSocketがありますが、サーバー側での実装がさらに進んでいると思われます。&あなたは視聴者の手が届かなくなってしまいます。ちょっとしたJSONリクエストを頻繁に行うだけです。

0

いいえ、応答を取得するためにHTTPリクエストを送信する必要があります。要求と応答の間の遅延は(その更新のために積極的にポーリングしないでください)しかし、限り、あなたが望むようになります

http://en.wikipedia.org/wiki/Push_technology#Long_polling

あなたは単に要求を作る、それが完了するのを待ちます(何かが発生した場合)、すぐに別の要求を開始し、応答を処理します。

このようにして、サーバーは常にブラウザーに「プッシュ」する(またはまもなく応答する)要求に応答できます。

+0

>最大のハードルは、ブラウザにWebサーバーと同時に2つ以上の接続を持たないようにするHTTP 1.1仕様です。したがって、リアルタイムイベントのために開いている1つの接続を保持することは、ブラウザのユーザビリティに悪影響を及ぼします。ブラウザは、一連の画像などの前回のリクエストの結果を待っている間、 – Tim

+0

@Timページがロードされてから最初のポーリングを開始します。このアプローチはFacebookなどでうまく使用されています –

+0

さらに、Firefoxで 'network.http.max-connections-per-server'をチェックしました。デフォルトは_15_です。 –

関連する問題