4

リアルタイムの情報をいじりたいのですが、複製したいかなり標準的な機能があります。

これは、単一の質問ビューで回答を入力しているときにSOで発生し、「ニュースの回答は3つあります。クリックして表示してください」というアラートが上部にポップアップ表示されます。

Twitterでも発生します「この検索には5つの新しいツイートがあります:クリックして更新してください」

私はサーバー側とクライアント側のコードにかなり精通しており、私が探しているのは、このようなことがどのように発生するかについての基本的な概要(疑似コードではなく、おそらく平易な英語)です。

毎分実行されているサーバー上に、ページ上の長いポーリングされたAJAXビットに信号を送信するCRONジョブがありますか?

ページ自体はサーバーをポーリングしますか?

ありとあらゆる解決策を歓迎します。ありがとう!

4

3 に答える 3

1

私の頭のてっぺんから、私はjavascriptを介してそれを作ります-サーバーに質問するためにタイムアウトを設定します。しかし、それは知識に基づいた推測にすぎません。

于 2010-02-21T21:59:19.600 に答える
1

setTimeoutこれは、Javascriptメソッドを使用して定期的にクライアント側で実行されるAJAX呼び出しを使用して実装できます。サーバー側のメソッドを呼び出して更新が発生したかどうかを確認し、更新を表示してから、setTimeoutを呼び出して自分自身を呼び出すJavascript関数があります。

擬似コード:

function updateCheck()
{
  //make ajax call
  //do something if any update has occurred
  setTimeout("updateCheck()", 10000); //second param is in milliseconds
}
于 2010-02-21T22:01:54.860 に答える
0

SOは定期的なアップデーターを使用して次のようなURLにajaxリクエストを行うようです。

https://stackoverflow.com/posts/2307584/answer-activity-heartbeat

これにより、JSONの結果が返されます。

{"Result":false,"Count":0}

新しい回答が存在する場合の結果の例を次に示します。

{"Result":true,"Count":1}
于 2010-02-21T22:38:55.373 に答える