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