4

了解しました。次のようになります。

私は現在、AJAXを使用して画面をライブに保つためにデータを自動更新/自動プル/自動リロードするソフトウェアを実装しています。

これは実際には機能していますが、私は次のような最も単純なアプローチを使用したことを知っています。

  1. SetInterval(javascript)
  2. n秒ごとにRefreshメソッドを繰り返し呼び出します。
  3. Jsonデータを読み取り、HTMLを再構築して更新します。

これは、SetTimeOut(javascript)を呼び出してAJAXリクエストを終了するだけでも実行できます。

refreshメソッドでは、同時に呼び出されていないことなどを内部的に確認します。

ただし、これは最も単純なアプローチであり、機能しますが、低速のコンピューターでは、Firefoxなど、このアクティビティによってブラウザーがフリーズすることがあります。これは、 AJAX呼び出しのために必要ない場合がありますが、「集中的」です。 "は全体的なjavascript操作です...しかし、プロファイラーを実行した後、全体的なjavascript(ちなみにjqueryを使用)は問題ないようです。また、自動更新を無効にすると、低速のコンピューターでブラウザーが短時間フリーズしません。

私は、いくつかの主要なAJAXアプリケーションがそこでどのように機能するかを調査することにしました。

たとえばFacebook..彼ら常にN秒ごとにリクエストを実行し、JSONを解釈して画面を更新しますが、Googleドキュメント...私はリクエストを見つけることができるようです..これはおそらく次の理由によるものです:彼らはただ言っているだけですリクエストをログに記録したくないjavascriptデバッガエンジン??、または更新のジレンマに別のアプローチを使用していますか?

私はここstackoverflowで別の答えを読みました、GoogleDocsは開いた接続を維持します。

これが答えになりますか?http://ajaxpatterns.org/HTTP_Streaming

あなたたちはこれについて何を知っていますか?

ちなみに、私が開発しているアプリケーションは、一度に数千人のユーザーがアクセスすることを目的としています。JavaScriptの更新ルーチンは履歴のほんの一部しか伝えていないことは知っていますが、サーバー側のアプリケーションとデータベースは現在、数千の仮想化ステーションを使用して行ったストレステストに従って、このような負荷をサポートしています。クライアントブラウザの問題について具体的にどう思うか知りたいだけです。

よろしくお願いします。まだこれを読んでいる場合は..お時間をいただきありがとうございます。

4

2 に答える 2

2

彼らはWebSocketを使用しているのではないかと思います。ブラウザのサポートは不安定であるため、このアプローチによってマイレージが異なる場合があります。

また、クライアント/サーバーアーキテクチャを使用したロングポーリングの適切な実装であるAPE(ajaxプッシュエンジン)も確認することをお勧めします。

于 2012-06-08T11:40:46.253 に答える
0

ロングポーリングについて読むことができます。ただし、ドロップされた接続などを処理する必要があります。

于 2012-06-08T11:40:37.057 に答える