問題タブ [long-polling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - XMLHttpRequest 中に Chrome の読み込みインジケータが回転し続ける
Comet/Long Polling を使用して Web ページを最新の状態に保つ AJAX Web アプリを作成していますが、Chrome でページが常に読み込まれているかのように処理されることに気付きました (タブのアイコンが回転し続けます)。
Google Waveでもこの動作があったので、Google Chrome + Ajaxではこれが普通だと思っていました。
今日、Google Wave の読み込みアイコンが回転しなくなったことに気付きました。これをどのように修正したか知っている人はいますか?
これが私のajax呼び出しコードです
c# - ajax リクエストのロングポーリングの C# サーバー側部分をどのように実装すればよいですか?
更新のために 3 秒ごとに ajax を介してポーリングするブラウザーを含むアーキテクチャがあり、それをlong-pollingに変更したいと思います。
1, 2.. {n} 個のクライアントがロング ポーリングを行い、更新を待機し、待機しているクライアントに戻るように通知するためにサーバーで何かが発生するようにしたいと考えています。最初に考えたのは を使用することでしたEventWaitHandle
。1 つのクライアントをサポートするだけであれば、これは簡単に実行できます。クライアントをブロックするだけで、おそらくタイムアウトで、そうではないかもしれません。いずれにせよ、サポートできるのは 1 つのクライアントのみであり (待機中のスレッドは 1 つしか起動しないため)、n 個のクライアントが必要です。AutoResetEvent
WaitHandle
WaitOne
AutoResetEvent
を使用する必要があると確信していますが、それをいつ呼び出すかはわかりません(スレッドを起動するとき)。と の間の任意の量だけを使用する必要がありますか?ManualResetEvent
WaitHandle
Reset
Set
Thread.Sleep
Set
Reset
疑似コードでは、ウェイク ロジックは次のようになります。
- 得る
ManualResetEventWaitHandle
- 電話
Set
- 新しいリクエストが吹き飛ばされるのを防ぎながら、待機中のすべてのクライアントが目覚めたことを確認します
Reset
待機中のすべてのクライアントが更新を受信したので、今すぐ呼び出します
私が苦労しているのはその3行目です。現在LastTxID
、クライアント/サーバーが維持し、潜在的に2つの待機ハンドルを使用するという考えを投げかけています。ただし、この実装に夢中になる前に、ここでフィードバックを取得して、ウェイク ロジックがどのように実装されるかを確認したかったのです。
編集:IISを微調整するか、WCFまたはその他のソリューションを介してホスティングすることにより、最大同時ユーザー数を把握することに関連する問題があると仮定します。ウェイクアップ ロジックだけに注目したいと思います。
javascript - document.domain を設定すると、すべてのポップアップと iframe にも設定する必要があるのはなぜですか?
チャット スクリプトにロング ポーリング iframe ソリューションを使用しています。残念ながら、iframe はサブドメイン呼び出しであるため、iframe とメイン ドキュメントで document.domain='yourdomain.com' を設定する必要があります。
大きな問題は...ポップアップとiframeを使用する他のすべてのスクリプトが壊れていることです。彼らは今でも私に document.domain を入れるように要求しています。それは修正されますが、これは理想的な解決策ではありません。この問題を回避する別の方法はありますか?
jquery - jQueryのロングポーリングリクエストを停止するにはどうすればよいですか?
私が使用している...
長いポーリング要求の場合。現在のリクエストを停止する必要がある場合があります。これは可能ですか?
php - nodejs を php アプリケーションと統合するための推奨事項
PHP で (Kohana フレームワークを使用して) 記述された既存のアプリがあり、長いポーリングを実行したいと考えています。私が読んだいくつかのことから、PHPで長いポーリングを行うことはお勧めできず、nodejsのようなものを使用することはより良い選択であるようです. 私の質問は、nodejs (またはロングポーリングに適した他のツール) を既存のアプリケーションと統合する最良の方法は何ですか?
明確にするために、私のアプリは基本的に、他の人のグループにデータを送信するために使用できるブラウザープラグインです。そのデータが送信されたとき、受信者がオンラインで、ブラウザのプラグインも持っている場合は、そのデータを即座に受信して通知する必要があります。
jquery - ロング ポーリング リクエストで FireFox が「回転」しないようにするにはどうすればよいですか?
ロングポーリングリクエストに以下を使用しています...
要求は、30 秒が経過するか、送信する情報が存在する (ロングポーリング) まで終了しません。
問題は、下部に「Waiting for URL...」と表示されるブラウザが Firefox だけであることです。これを防ぐ方法はありますか?
c# - 非同期呼び出しの Web ページを「読み込んでいます」
ASP.NET / C# で簡単な Web ページを作成しています。現在、データを完全にレンダリングするには、バックグラウンド スレッドで実行されるコード ブロックを呼び出す必要があり、完了までに数分かかることがあります。私はそれを(ページ宣言で async 属性を使用して)実行し、完了したらhtmlで正常に返すようになりました。私がやりたいことは、何らかの「読み込みページ」ですぐに戻り、バックグラウンド作業が完了したときにそのページを更新できるようにすることです。現在、バックグラウンド作業が処理されている間、ページには何も表示されません。それを行うための最善の方法または賢い方法に関するアイデアは大歓迎です!
ありがとう、
ジーク
c# - 1回のリクエストでWebブラウザに何度もデータを送るには?
Web ページにフォームがあり、Web サイトに多くのクエリを送信できます。すべてのクエリは TextArea の別の行にあります。すべてのクエリが完了するのを待つのは長すぎるため、すべてのクエリが完了するたびに Web ページを更新したいと考えています。1 つのクエリの結果を Web ブラウザーに送信し、新しい結果を既に Web ページにある古い結果に追加する必要があります。
ASP.NET MVC 2 でこれを行う方法は?
役立つ回答に感謝します。
アップデート
すべての回答に感謝しますが、Web ブラウザーで JavaScript を使用してサーバーのデータをポーリングすることにしました。これについての質問です jQuery キャッシュを無効にできません
blazeds - 低帯域幅ネットワークに最適な BlazeDS ポーリング方法はどれですか?
BlazeDS ポーリング構成 (シンプルまたはロング ポーリング) が、低帯域幅ネットワークに最適なのか疑問に思っています。
comet - DreamHost でのコメットとロング ポーリング リクエスト?
この種の操作を DreamHost または他の共有ホスティング環境で実行するためのソリューションはありますか?