0

私がやりたいのは、1人のユーザーがチェックボックスをオンにすると(たとえば、どのイベントでもかまいません)、同じページを開いているすべてのユーザーが、ページを更新せずにすぐにそれを見たということです。

ajaxとsetTimeOut(またはsetInterval)関数を使用してそれを行う方法を知っています。setTimeOut関数を使用して、イベントがトリガーされたかどうかを無限ループでチェックするストリームを開き、トリガーされた場合はajaxでコンテンツを更新します。または、しばらくしてページを更新する間隔を設定します。

私はより最適化されたクロスブラウザソリューションを探しているので、どんな助けでもありがたいです。

4

1 に答える 1

1

Google で検索: コメットまたはロング ポーリング

ソリューションをクロスブラウザーにするためには、Web サーバー/HTTP が設計されたものを曲げる必要があります。これは、ブラウザーからの要求が可能な限り迅速にページに提供され、その後接続を閉じるためのものです。新しいブラウザーには新しいメソッドがあり、HTTP モデルには新しい定義がありますが、古いブラウザーでは機能しません。

ロング ポーリングの背後にある基本原則は、要求がサーバーに送信され、サーバーがページを生成するふりをしてアイドル状態になることです。クライアントの更新を必要とするイベントが発生した場合、サーバーはその情報を応答として送信します。リクエストより前の日付のリクエスト。これはサーバー リソースの点では非効率的ですが、ユーザー エクスペリエンスの点では可能な限り高速です。

于 2012-08-06T12:53:46.403 に答える