問題タブ [ajax-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.
php - Jquery / PHPを使用してチャットルームを実装するにはどうすればよいですか?
グループチャットとプライベートチャットの両方の機能を備えたPHP/Javascript(Jquery)を使用してチャットルームを実装したいと考えています。
問題は、自然な方法でインターフェイスを継続的に更新する方法と、プライベートチャットで「Xが入力中です..」メッセージを表示する方法です。
明らかな方法は、X秒/ミリ秒ごとにjavascriptがサーバーにpingを実行し、最後のpingから現在までの間に新しいメッセージのリストをフェッチすることです。ただし、チャットルームが突然5つのメッセージでいっぱいになると、インターフェイスが少し不自然に見える可能性があります。むしろ、入力されたとおりに各メッセージが表示されるようにしたいと思います。
javascriptがサーバーへの継続的な接続を維持し、サーバーがこの接続に新しいメッセージをプッシュし、javascriptがそれらをインターフェイスに追加して、サーバーがメッセージを受信するとすぐに同時に表示されるようにする方法はありますか?
いくつかのapacheモジュールなどをインストールする必要があるポーリングオプションがあることは知っていますが、私はsysadminがかなり苦手なので、共有ホスティングアカウントまたはphpに非常に簡単にインストールできるソリューションがあればいいのですが。 /mysqlのみのソリューション。
extjs - ExtJS パネル/ツリー/ポーリングするその他のもの
私が望むのは、データベース テーブルから常に最新のレコードのリストを表示することだけです。
私の最初の考えは、x 秒ごとに一定の ajax 呼び出しで更新をチェックすることでしたが、それが最善の方法であるかどうかはわかりませんでした。私はググってみたところ、COMET、Ext.Direct、ポーリング、プッシュ (comet?) などのものがすべて出てきました。
これを行う最良の方法は何ですか?
jquery - Chrome での長い Ajax リクエストが待機中を示す
FF と IE では、サーバーに対して Ajax リクエスト (Jquery Post) を行います。要求は、データを返す前に 30 秒間 (またはデータが利用可能な場合はすぐに) クエリを実行する SQL ストアド プロシージャを呼び出します。その後、データが JavaScript に返され、それに基づいてアクションを実行します。
Chrome に到達するまでは問題ありません。Chrome は更新を取得しますが、ブラウザーに読み込みポインターと読み込みページ アイコンが表示されます。
この呼び出しは、リクエストが返されるたびに行われるため、ユーザーには、クロムが常にページの読み込みを待っているように見えます。
これを回避する方法はありますか?
よろしく。
jquery - スマートポーリングプラグインを使用したjqueryポーリング
このプラグインを機能させるために一生懸命努力していますが、ステータス関数を理解していないため、再試行は実行されません。
getリクエストを「/」に設定すると、アラートYESメッセージが表示されますが、そのままでは、アラートNoメッセージはELSEにもかかわらず発生しません。
私はjqueryポーリングプラグインを使用しています:
https://github.com/jeremyw/jquery-smart-poll
何か案は?
ajax - AJAX ポーリングの質問 - ブロッキングまたは頻繁?
非常に「ライブ」なデータに依存する Web アプリケーションを使用しているため、何かが変更された場合は 1 秒ごとに更新する必要があります。
次のソリューションの長所と短所は何だろうと思っていました。
解決策 1 - たくさん投票する
したがって、1 秒ごとにサーバーにリクエストを送信し、データを取得します。データを取得したら、すべてをやり直す前に 1 秒待ちます。状態が変化した場合はクライアント側を検出し、適切にアクションを実行します。
解決策 2 - たくさんブロックする
そのため、30 秒後にタイムアウトするサーバーへの要求を開始します。サーバーは、1 秒に 1 回チェックすることで、サーバー上のデータを監視します。サーバーは、データが変更されたことに気付くと、データをクライアントに送り返し、クライアントは適切なアクションを実行します。
シナリオ
基本的に、データのサイズはかなり小さいですが、ライブ イベントに基づいてランダムな間隔で変化します。問題は、Web UI は 2,000 インスタンスの領域で何かを実行することになるため、UI から 1 秒あたり 2,000 のリクエストが来るのか、それとも最大 30 秒かかる 2,000 の実行時間の長いリクエストがあるのかということです。
特に、同様のボリュームで AJAX リクエストを処理したことがある場合は、ヘルプとアドバイスをいただければ幸いです。
php - AJAX/PHP HTTP ポーリングが遅いのはなぜですか?
HTTP ポーリングが非常に遅いのはなぜですか?
私が持っているのはボタンです。ユーザーがボタンをクリックすると、MySQL データベース フィールドが更新され、値がユーザーに表示されます。私は 800 ミリ秒ごとにポーリングしていますが、非常に遅延/グリッチがあります。ボタンをクリックしても、登録されないことがあります。実際には、800 ミリ秒ごとよりもかなり頻繁にポーリングする必要があります。
これは、一度に Web サイトに 1 人のユーザーしかいない場合にも当てはまります。
api - 商用利用のためのAPIでのAJAXポーリング
現在、AJAXインターバルポーリングを使用するAPIを開発しています。これは、1.5分ごとに900バイトでポーリングし、MySQLに大きな負荷をかけないようで、AJAXストリームは1つだけです。この起動から十分な収益が得られたら、node.jsサーバーにアップグレードする予定ですが、現時点では、apacheを使用する共有ホストを購入する余裕しかありません。
スケーラビリティの観点から、これは実行可能でしょうか?また、彗星のような他の解決策が現在利用可能であるため、これは商業標準から受け入れられるでしょうか?
java - CometDを使用して、チャネルのすべてのJavascriptサブスクライバーにメッセージを公開するにはどうすればよいですか?
CometDを使用するJavaWebアプリケーションの場合、メッセージがbayeuxによって処理されるたびに、チャネルのすべてのサブスクライバーにメッセージを公開するにはどうすればよいですか?
テストには、を使用しserverSession.deliver(serverSession, "/test-channel", map, null);
ました。
その結果、私のJavascriptクライアントは正常にサブスクライブしますが、10回の試行のうち1回だけメッセージを受信します。したがって、90%の確率で、ブラウザがメッセージを受信することはありませんが、バイユーのログ(レベル3)は、メッセージが毎回正しいチャネルに送信されていることを示しています。
何らかの形式のクライアントセッションを使用する必要がありますか?CometDのドキュメントは少し不明瞭なようです。
asp.net - クライアント側でステータスをポーリングする方法
いつでも変化する可能性のあるオブジェクトのステータスを調べる必要があります。最良のシナリオは、オブジェクトが変更された場合にクライアント側が更新されることですが、クライアント側が最初に更新を要求しない限り、更新をクライアント側にプッシュするための配管はないと思います。
そのため、5秒ごとにコールサーバーに設定されるjQueryajax呼び出しを介してポーリングを実装することを考えています。これは合理的な解決策ですか?