私が働いている会社には、ASP.NET MVC2 で開発され、IIS7 でホストされている Web アプリケーションがあります。
特定のアクションでは、配列を保持する JsonResult オブジェクトを返します。この配列は毎日更新されます。そのため、同じ日に受信したリクエストはすべて同じレスポンスになります。
public ActionResult SomeAction(int id)
{
// Some calculations
return Json(resultArray, JsonRequestBehavior.AllowGet);
}
運用にコストがかかるため、ブラウザのキャッシュなどでパフォーマンスを向上させたいと考えていました。
キャッシュ ヘッダーを追加したので、データベースの次の更新まで結果をキャッシュするようにユーザー ブラウザーに指示しています。
それに加えて、「Last-Modified」ヘッダーを追加したいので、ブラウザは指定された日付の後にソースが変更されたかどうかを尋ねます。
それを達成する方法は何ですか?ブラウザーが要求した日付 (Last-Modified ヘッダー) の後に DB が変更されているかどうかを確認したい。変更されていない場合は、IIS が静的ファイル (画像、css、js ファイルなど) に対して自動的に行う 304 を返したい。