В настоящее время у меня есть следующие действия для возврата файлов (изображений, PDF и т. Д.) Из моей БД:
//
// GET: /FileManager/GetFile/ID
[OutputCache(Duration = 600, VaryByParam = "ID")]
public ActionResult GetFile(int ID)
{
FileService svc = new FileService(new SqlFileRepository(base.ConnectionString));
KsisOnline.Data.File result = svc.GetFileByID(ID);
return File(result.Data, result.MimeType, result.UploadFileName);
}
Я использую атрибут OutputCache
, но я не знаю, правильно ли я его использую или как его оптимизировать для этой цели.
Поскольку код стоит, я, кажется, получаю функциональность кэша в Firefox (3), но не IE (7). По какой-то причине IE каждый раз запрашивает образ из БД (что, очевидно, очень плохо), и я не знаю, как это исправить. Конечно, IE не поддерживает стандарты должным образом, но, возможно, я все еще не следую некоторым предпочтительным соглашениям о кэшировании. Я был бы очень признателен за помощь в этом, поэтому я получаю минимальное количество обращений к БД и поддержку кеширования кросс-браузера.
EDIT:
Чтобы увидеть приведенный выше код в действии или профилировать его самостоятельно с помощью браузеров / инструментов, см. эту ссылку .