【ぽーりんぐ】
ポーリング とは?
最終更新:
💡 変わったかどうかを、繰り返し確認
相手や状態を繰り返し確認し、変化があるかを調べる方式。短いポーリングとロングポーリング、確認間隔と負荷、WebSocket・SSEとの違いを解説します。
📌 このページのポイント
- 相手や状態を繰り返し確認し、変化を調べる方式
- 確認が頻繁だと、変化がなくても要求と応答が増える
- 確認間隔と、変化に気付くまでの時間を調整する
- ロングポーリングは、応答を待ち、受信後にまた要求する
新しいデータを、どうやって見つける?
ポーリングでは、クライアント側から繰り返し問い合わせるよ。たとえば処理が完了したかサーバーに確認し、まだなら後でもう一度聞く。変化がなくても、確認の要求と応答が発生するんだ。
短い間隔で聞けば、よい?
タイマーで呼べば、簡単?
前の確認が終わらないうちに次を始めると、要求が重なったり、結果の順番がずれたりするよ。前の処理が終わってから次を予定する方法もある。失敗時の待ち時間、タイムアウト、確認をやめる条件も設計しよう。
ロングポーリングは、何が長い?
WebSocketのほうが、いつでもよい?
もっと詳しく知りたい人へ
setIntervalなら、必ず正確な間隔で確認できる?
実際の実行は処理やブラウザの状態等で遅れることがあります。MDNは通信等の処理が間隔より長い場合、再帰的なsetTimeoutで前の処理の完了後に次を予定する方法を説明しています。タイマーの設定値だけで応答の速さを保証しないようにします。
ロングポーリングでは、最初の要求を永久に待つ?
新しいデータ、タイムアウト、接続エラーなどで要求は終わります。クライアントが必要に応じて再接続します。長く待てる上限はサーバーや中継機器の設定にも関係し、エラー時の再試行と終了条件を決めます。
まとめ:ざっくりこれだけ覚えればOK!
「ポーリング」って出てきたら「変化があったかを、繰り返し問い合わせて確認する方式」と思えばだいたいOK!
📖 おまけ:英語の意味
「Polling」 = 繰り返し問い合わせて調べること
💬 Webでは、クライアントがサーバーに新しいデータの有無を繰り返し確認する例があります。機器や処理の状態確認にも使われる言葉です。