基本的に、JavaScript が GET 要求を 30 秒ごとに送信し、データベース内のテーブルの特定の行が変更されたかどうかを確認する ASP.NET MVC アプリケーションを作成しています。
OutputCache 属性を見てきましたが、コンテンツをキャッシュするだけで、更新が行われたかどうかを実際に確認しないため、機能しないようです。
これを行うための「最も安価な」方法は何でしょうか? サーバーへの負担が最も少ない方法を意味しますか?
基本的に、JavaScript が GET 要求を 30 秒ごとに送信し、データベース内のテーブルの特定の行が変更されたかどうかを確認する ASP.NET MVC アプリケーションを作成しています。
OutputCache 属性を見てきましたが、コンテンツをキャッシュするだけで、更新が行われたかどうかを実際に確認しないため、機能しないようです。
これを行うための「最も安価な」方法は何でしょうか? サーバーへの負担が最も少ない方法を意味しますか?
おそらく、データベースに変更があったときにプッシュ通知を使用するSignalR(データベースに応じて、手動またはSqlDependencyによって追跡できます)...
私は Wyatt Barnett の提案を使用しましたが、うまく機能します。
答えてくれてありがとう - 感謝します。
ところで、彼のコメントを回答としてマークできないので、回答しています。
HEAD リクエストの方が速いかもしれませんが、それが保証されるわけではありませんが、調査する価値はあります。
何かを使用して変更をストリーミングできない場合、最も安価な方法は、日付を取得し、変更が発生したかどうかを示すブール値フラグまたは整数を返す API を使用することです。基本的にこれはポーリングであり、SignalR またはその他のメッセージ受信プロセスが不可能な場合、これは最小の応答であるため、最小になります。
何をしたいかによって異なりますが、ロングポーリングを検討しましたか? たとえば、javascript を使用して GET/POST 要求を作成し、「イベント」が発生するまでサーバーが応答を保留できるようにします。