問題タブ [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.

0 投票する
1 に答える
872 参照

ruby-on-rails - チャット ルーム内のユーザー プレゼンス (チャットは単純なポーリングによって更新されます)

シンプルな Ajax アップデートを使用して、Rails にシンプルなチャット ルーム機能を実装しました。現在、すべてのチャット ルームで、メッセージは特定のユーザーに属しています。ユーザーのリスト (ユーザーの存在など) を表示したいと考えています。方法を提案してください。Jabber、XMPPなどは使用していません。

チャットルームのモデルは次のとおりです。

メッセージは、すべてのユーザーが送信したチャットです。

メッセージ モデルは次のとおりです。

ユーザーモデルは次のとおりです。

方法を提案してください

0 投票する
4 に答える
1840 参照

javascript - Javascript ポーリング サーバー。これによりスタックオーバーフローが発生しますか?

私は、各ブラウザのすべての JavaScript 実装の詳細にあまり精通していません。ただし、setTimeout を使用すると、渡されたメソッドが別のスレッドで呼び出されることはわかっています。では、メソッド内で setTimeout を再帰的に使用すると、スタック オーバーフローが発生するまでそのスタックが無期限に拡大するのでしょうか? それとも、別のコールスタックを作成し、フォーカスが外れたら現在のフレームを破棄しますか? 気になるコーデはこちら。

サーバーを毎秒ポーリングしたいのですが、「ブロッキング ループ」で CPU サイクルを浪費したくありません。また、ユーザーがページにアクセスできる時間制限を設定したくありません。

編集

firebug を使用していくつかのブレークポイントを設定し、[スクリプト -> スタック] パネルを表示すると、コール スタックが文字通り単なる「pollServer」であり、コールごとに増加しないことがわかりました。これは良いことですが、JS の他の実装は異なる動作をしますか?

0 投票する
3 に答える
1450 参照

ruby-on-rails - Ruby on Rails のオンライン ユーザー

ユーザーがオンラインかどうかを確認し、オンライン ユーザーのリストを表示する最も簡単な方法は何ですか?

私が考えることができる唯一の方法は、最後のアクションのタイムスタンプを更新する定期的なポーリングサーバーであり、最後のタイムスタンプが xx 以上前の場合、ユーザーはオフラインと見なされます。しかし、それはあまりにも効率的な解決策とは思えません。

0 投票する
2 に答える
4760 参照

php - JavaScriptを使用して3分ごとに関数を呼び出そうとしています

整数 (コミュニティ サイトのユーザーの現在の評価スコア) を返す関数があります。その数は、コメントや提出物がどのように投票されるかに基づいて増減することがよくあります. 30秒ごとに「ポーリング」して、変更されているかどうかを確認し、変更されている場合は、表示している数値を更新したいと思います。

別の StackOverflow スレッドで、便利そうな次の JavaScript スニペットを見つけました。

/mylongrequestfile を自分の関数に置き換えるだけですか? 私はそれを試みていますが、うまく機能していません。このコードまたはその他のスニペットを使用して、30 秒ごとにこの値を取得して表示するにはどうすればよいですか?

0 投票する
1 に答える
3054 参照

ajax - 長いポーリング接続を閉じる、jQuery-ajax

背景
私は、ロングポーリングをサポートするトルネードのようなサーバーを使用しています。ユーザーが新しい Web ページにアクセスするたびに、次のようなサーバーへの長いポーリングが設定されます。

問題
ここで、ブラウザから行われたすべてのリクエストを監視する Fiddler から取得したデータに依存します (現時点では FF)。

  1. ページ 1 が読み込まれ、ロング ポール リクエストが行われ、サーバー側でアイドル状態になります。
  2. ページ 2 へのリンクをクリックすると、そのページが読み込まれ、長いポーリング リクエストが設定されますが、ページ 1 からの長いポーリング リクエストはサーバー側でまだアイドル状態です (Fiddler によると)。

これは、ページをクリックするとすべての長いポーリング呼び出しがスタックされることを意味し、サーバー上で多くのアクティブな接続が発生します (または、接続を共有している可能性がありますか?)

私の考え
- これはトルネードのようなサーバー (epoll を使用) であるため、かなり多くの接続を処理できます。しかし、この事実は私の意見では悪用されるべきではありません。私が言いたいのは、この場合 (クライアントが消えた場合) にサーバーにタイムアウトを設定したくないということです。
- これらの独立したページは、共通のヘッドを使用し、ajax 呼び出しを介してのみコンテンツを交換することを知っていますが、今日使用するこの設計は私の呼び出しではありませんでした...
- これを解決する最善の方法は、おそらく接続を再利用することです (やってのけると思います) またはブラウザがページを離れるとすぐに閉じます (クリックして別のページに移動します)。

ありがとう
-- MyGGaN

0 投票する
4 に答える
2441 参照

php - ajax: 応答を待つのではなく、定期的にチェックする

実行に時間がかかる PHP プロセスがあります。それを呼び出すAJAXプロセスが終了するのを待つ必要はありません。PHP プロセスが終了すると、データベースにフィールドが設定されます。データベースフィールドを定期的にチェックしてメッセージを設定するには、ある種の AJAX ポーリング呼び出しが必要です。

待機するのではなく、ポーリングするように jQuery AJAX 呼び出しを設定するにはどうすればよいですか? PHP スクリプトは何か特別なことをする必要がありますか?

0 投票する
1 に答える
382 参照

jquery - jQuery:定期的な更新プログラムに毎回異なるデータを渡しますか?

私のセットアップでは、すべてのエントリの ID が取得され (たとえば variable に割り当てられids=2,5,7,9,11)、定期的な更新プログラムに渡されて、php スクリプトに送信されます。問題は、新しいエントリが ajax 経由で追加されると、ID のリストが時間の経過とともに変化することです。更新されたエントリの id リストが実行のたびに periodicalupdater に渡されるようにするにはどうすればよいですか? 私の観察によると、最初に実行すると、データは「キャッシュ」またはキャプチャされて何度も再利用され、ids各「実行」の前に変数 () が再フェッチされません。

または、これができない場合にこれを行うことができる別のプラグインまたはコードはありますか? エントリ ID のリストを ajax 経由でサーバー スクリプトに送信しようとしています。サーバー スクリプトは、一定間隔で (変更がある場合にのみ) 処理するための xml ファイルを返します。

ご協力いただきありがとうございます!:)

0 投票する
2 に答える
1311 参照

php - 着信チャットメッセージを検出する方法は?

私は PHP、AJAX、MySQL データベース、および多くの jQuery を使用して、Web ベースのチャット システム (Facebook チャットに似ています) のプロトタイプを作成しています。着信チャットを「聞く」方法に行き詰まっています...誰かが私にチャットしようとしていることをいつ知るか...そしてそれが既存のチャットではなく新しいチャットであ​​ることを知る.

現在、データベース テーブルに新しい挿入があるかどうかを確認するためにポーリングしていますが、非常に効率が悪いようです... サーバーに多くのオーバーヘッドがかかります。

たとえば、MySQL データベースのテーブルに行が挿入されたときに通知を受け取る方法はありますか?

この 1 対 1 のチャット関係を作成するためのより適切で効率的な方法があれば、いくつか提案をお願いします。

ありがとう、フリスト

0 投票する
1 に答える
213 参照

twitter - ツイートが更新されるたびにイベントをトリガーする方法

特定のユーザーが自分のツイートを更新したときに、イベントをトリガーする方法 (たとえば、特定のユーザーからのツイートをテキスト ファイルに保存する、またはメールで送信するなど) を知りたいと思っていました。数秒ごとに更新をポーリングする必要がありますか、それとも他の方法がありますか。

0 投票する
1 に答える
1468 参照

javascript - JavaScript でポーリング コンシューマー パターンを実装する最善の方法

バックグラウンド

5 月に、メモリ保持の問題に関する WebKit の問題を報告しました。問題は Web Inspector 自体に起因する可能性があるように見えますが、まだ確信が持てません。

問題

私の JavaScript アプリケーションが、利用可能になったデータを取得するための「 Polling Consumer 」パターンを実装するという問題が表面化しました。問題は、記憶が保持され、1 日を通して増加することです。JavaScript ロジックは次のようになります。

  1. データを取得して折り返し電話する
  2. コールバックされたら、データを処理してからステップ 1 を実行します

これは JavaScript でポーリング コンシューマを実装する合理的な方法ですか? ちなみに、私はjQueryのajax関数を使用していますが、もちろんそれ自体に問題がある可能性があります。さらに、成功ハンドラーとしてjQueryプロキシを使用しているため、スコープによる保持は問題にならないと考えていました。また、プロキシを使用せずに問題を観察しました。いくつかのコード: