PHP + Javascript / jQueryにオブザーバーパターンを実装するにはどうすればよいですか?
-
06-07-2019 - |
質問
SOのように、質問に回答している場合、誰かがその質問に回答した場合、通知が表示されます(AJAX経由?)。これをいくらか複製する唯一の方法は、n秒ごとに更新がある場合にフェッチするスクリプトにタイムアウトを含めることです。 PHP + JavaScript(w / jQuery)でオブザーバーパターンを使用してこれを行う方法はありますか?
解決
ReverseAJAX または COMET 方法論。
ウィキペディアごと
リバースAjaxはAjaxデザインを指します 存続期間の長いHTTPを使用するパターン 低遅延を可能にする接続 Webサーバーとの通信 ブラウザ。基本的には クライアントからサーバーにデータを送信し、 サーバーデータをプッシュするためのメカニズム ブラウザに戻ります。
編集:
iでは、次のアプローチを実装することをお勧めします。これは実装が簡単です。例としてstackoverflow answeringを取り上げます。
- 回答ページのロードが完了した後。 AJAXリクエストを開始します(Asynchronos、UIをブロックしません)
- また、サーバー側で新しい更新を探します(DBをポーリングして、新しい回答が追加されたかどうかを確認します)
- 更新がある場合は、ブラウザにのみデータを返します。そうでなければ落ち着いてください。
- クライアントにデータを返した後、クライアントは別のAJAXリクエストを呼び出して更新を待つ必要があります。
- 残りのページの有効期間について、手順2〜4を繰り返します。
これがお役に立てば幸いです。
他のヒント
タイムアウトを使用して更新をサーバーに照会する場合、Observerパターンの固有の実装と見なされる可能性があります。残念ながら、その逆を行うことはできません。サーバーがメインのHTTPリクエストへの応答を完了すると、クライアントは「リスニング」を終了します。それに。これを行う唯一の方法は、クライアントから非同期リクエストを行うことです。
所属していません StackOverflow