1

私は、Gmail内でFacebookチャットやGoogleトークのように機能するアプリケーション用のWebベースのチャット機能を設計しています。更新をチェックする頻度について誰かがアドバイスを持っているかどうか疑問に思っていますか?2秒ごと?5秒ごと?10秒?

また、setTimeoutのコールバック関数でsetTimeoutを呼び出す必要がありますか、それとも更新のためのajaxリクエストのコールバックで呼び出す必要がありますか?基本的に、呼び出しの間隔はn秒ですか、それとも最後の要求の完了から次の要求の開始までの間隔はn秒ですか?

ありがとう

4

4 に答える 4

5

私はそれを動的にします。2〜10秒など、外に出たくない範囲を決定し、中間点、たとえば5秒から開始します。投票で常に新しいメッセージが返される場合は、待機期間を最小限に抑えてください。投票が空に戻り始めたら、最大値に向かって増やします。これにより、必要なときの応答性と、何も起きていないときにサーバーに休憩を与えることのバランスが取れます。

于 2009-12-01T22:53:41.770 に答える
5

サーバーに複数回pingを実行する代わりに、 Comet(別名リバースAJAX)などを使用して永続的な接続を確立できます。

それ以外の場合は、2〜3秒が適切な範囲であると言えます。これより低い値はサーバーに過度のストレスをかけ、それより長い値はアプリの動作が遅くなります。

于 2009-12-01T22:54:16.573 に答える
1

イベントベースのアプローチを検討しましたか?そうすれば、リアルタイムの動作が得られ、リソースが節約され、スマートなポーリング間隔を考え出す必要がなくなります。

何らかの理由でポーリングを使用する必要がある場合は、通知が平均的に発生すると予想される時間の約2倍の短い開始間隔を使用し、新しいものがない場合は間隔を時々増やします。サーバーを不必要に槌で打つことは避けてください。一般的に、良い答えは実際にはシステムの機能によって異なります。

チャットの場合、イベントベースは私見に行くのに理想的な方法です。

于 2009-12-01T22:54:28.873 に答える
0

ただし、頻繁に更新されます。

これが意味するのは、独自のシステムのプロファイルを作成し、更新と負荷をチェックする最適な時間を決定できるということです。

于 2009-12-01T22:51:17.403 に答える