8
Webプログラミングでポーリングが受け入れられるのはなぜですか?
現在、画像のリストを表示するRuby on Railsプロジェクトに取り組んでいます。 このプロジェクトの必需品は、Webページを更新する必要なく、リアルタイムで新しい投稿を表示することです。しばらく検索した後、PubNubなどのJavaScriptソリューションとサービスに出くわしました。ただし、提供されたソリューションはどれも意味がありません。 JavaScriptソリューション(ポーリング)では、次のことが起こります。 ユーザー1が写真のリストを表示します。 バックグラウンドでは、JavaScriptコードがエンドポイントを1秒ごとにポーリングして、新しい投稿があるかどうかを確認しています。 ユーザー2が新しい写真を追加します。 新しいサイクルがトリガーされ、新しいデータを取得するまでに50ミリ秒の遅延があります。 新しいコンテンツがDOMにロードされます。 これは実世界の例に翻訳すると奇妙に思えます: ユーザー1は、自分の机に写真の山を持っています。 彼/彼女は毎秒カメラマンのところへ歩いて行き、彼が新しいものを持っているかどうか尋ねます。 写真家は新しい写真を作成します。 彼/彼女が中に入るとき、彼女は写真を撮り、それを山に置くことができます。 私の意見では、解決策は次のようにする必要があります: ユーザー1は、自分の机に写真の山を持っています。 写真家は新しい写真を撮ります。 写真家は山まで歩いて、残りの部分と一緒に置きます。 PubNubソリューションは基本的に同じですが、今回はデータを共有するために当事者間でのインターンがあります。 言うまでもなく、両方のソリューションは、ロードするデータがない場合でもトリガーされるため、非常にエネルギーを消費します。 私の知る限り、ほとんどすべてのリアルタイムアプリケーションでこの実装方法が使用されている理由(論理)は説明されていません。