比較的一定のデータベースポーリングを必要とするWebページのコンポーネントを構築しています。これには2つの異なるアプローチがありますが、そのうちの1つが他のアプローチよりも優れているのか、それとも3つ目のオプションがないのか疑問に思っています。
1)1秒または2秒ごとにAJAXリクエストを送信して、更新を確認します。新しいデータがあるかどうかに関係なく、各リクエストはすぐに返されます。
2)データを受信するかタイムアウトが発生するまで返されない単一のAJAXリクエストを起動します。これらのいずれかが発生すると、次のリクエストが発生します。(これはロングポーリングと呼ばれていると思いますか?)
データベースクエリの数はどちらでも同じですが、#2を使用すると、ブラウザから発生するリクエストが少なくなり、帯域幅とクライアントリソースを節約できます。サーバーの場合、アクティブなままでクエリ間でスリープする単一のPHPリクエストを使用するか、数秒ごとに起動してDBをポーリングしてから、シャットダウンする方がよいでしょうか。それとも違いはなく、私はこれについて強調しすぎていますか?
編集:これはより大きなウェブアプリのチャットウィジェットであることも述べる必要があると思います。チャットは二次的な機能であるため、通信がわずかに遅れてもユーザーを殺すことはありません。