イベントストリーム、ショートポーリング、ロングポーリング

大量のデータを取得することは、ユーザーにとって問題を引き起こします。レスポンスを待つ時間が長すぎると、体験が遅いと感じられてしまいます。これらのデータリクエストを処理するために、さまざまな手法が用いられます。

ショートポーリング クライアントは一定の間隔でサーバーにリクエストを送信します。サーバーは各リクエストに対して即座にレスポンスを返します。新しいデータが存在するかどうかをクライアントに伝えます。この手法は、絶え間ないリクエストが発生するため、多くのリソースを消費します。

ロングポーリング クライアントはサーバーにリクエストを送信します。サーバーは、新しいデータが到着するかタイムアウトが発生するまで、リクエストを保持したままにします。これにより、空のレスポンスの数を減らすことができます。

イベントストリーム (SSE) 大規模なデータセットは、待ち時間を長くする原因となります。例えば10万行のデータがある場合、それらを一度にすべて送信すると時間がかかります。データをチャンクごとに送信することで、ユーザー体験を向上させることができます。

イベントストリームは次のように動作します:

  • クライアントはサーバーへの接続を開きます。
  • 接続は開いたまま維持されます。
  • サーバーは、準備ができたデータの一部を少しずつ送信します。
  • ユーザーは全データが揃うのを待つのではなく、すぐに結果を確認できます。

この手法は、サーバーがすべてのイベントの送信を完了するまで接続をアクティブに保ちます。これにより、アプリケーションが高速でレスポンシブに感じられるようになります。

出典: https://dev.to/anubama_i/event-stream-short-polling-long-polling-54n