В компании, в которой я работаю, есть веб-приложение, разработанное с помощью ASP.NET MVC2 и размещенное на IIS7.
В конкретном действии мы возвращаем объект JsonResult, содержащий массив. Этот массив обновляется ежедневно; так что любой запрос, поступающий в тот же день, в конечном итоге будет с тем же ответом.
public ActionResult SomeAction(int id)
{
// Some calculations
return Json(resultArray, JsonRequestBehavior.AllowGet);
}
Поскольку операция требует больших затрат, мы хотели повысить производительность за счет кэширования браузера и так далее.
Я добавил заголовок кеша, поэтому мы говорим браузеру пользователя кэшировать результат до следующего обновления базы данных.
Кроме того, я хочу добавить заголовок «Последнее изменение», чтобы браузер запрашивал, был ли исходный код изменен после указанной даты.
Как это сделать? Я хочу проверить, изменена ли БД после запроса браузера даты (заголовок Last-Modified), и если он не изменен, я хочу вернуть 304, который IIS автоматически делает для статических файлов (изображения, файлы css и js и т. д.)