Практическое руководство. Задание срока действия для кэширования страниц ASP.NET
Обновлен: Ноябрь 2007
Чтобы страница добавлялась в кэш вывода, необходимо настроить для нее политику истечения срока действия. Это можно сделать декларативным или программным путем.
Декларативное определение срока действия кэша вывода для страницы
Включите директиву @ OutputCache в страницу ASP.NET (файл ASPX), ответы на обращения к которой должны сохраняться в кэше вывода. Задайте для атрибута Duration положительное численное значение, и присвойте значение атрибуту VaryByParam.
Примечание. Директива @ OutputCache по умолчанию присваивает заголовку Cache-Control значение Any.
Так, например, следующая директива @ OutputCache устанавливает срок действия страницы равным 60 секундам:
<%@ OutputCache Duration="60" VaryByParam="None" %>
Примечание. При использовании директивы @ OutputCache необходимо включить в нее атрибут VaryByParam, поскольку в противном случае произойдет ошибка синтаксического анализа. Если в использовании функциональности, которую обеспечивает атрибут VaryByParam, нет необходимости, присвойте ему значение «None». Дополнительные сведения см. в разделе Кэширование нескольких версий страницы.
Программное определение срока действия кэша вывода для страницы
В коде страницы политика срока действия задается с помощью свойства Cache объекта Response.
Примечание. Если срок действия для страницы устанавливается программно, следует также задать для кэшируемой страницы заголовок Cache-Control. Для этого вызовите метод SetCacheability, передав ему значение Public из перечисления HttpCacheability.
В следующем примере кода устанавливается политика кэширования, аналогичная той, что была задана с использованием директивы @ OutputCache в предыдущем примере.
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.SetValidUntilExpires(true);
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)) Response.Cache.SetCacheability(HttpCacheability.Public) Response.Cache.SetValidUntilExpires(True)
После окончания срока действия кэшированной страницы следующий запрос к этой странице приведет к тому, что ответ будет создан динамически. Эта страница ответа снова будет помещена в кэш на указанное время.
См. также
Задачи
Практическое руководство. Декларативное задание возможности кэширования страницы ASP.NET
Практическое руководство. Задание возможности кэширования страницы программными средствами