Поделиться через


Практическое руководство. Задание срока действия для кэширования страниц ASP.NET

Обновлен: Ноябрь 2007

Чтобы страница добавлялась в кэш вывода, необходимо настроить для нее политику истечения срока действия. Это можно сделать декларативным или программным путем.

Декларативное определение срока действия кэша вывода для страницы

  • Включите директиву @ OutputCache в страницу ASP.NET (файл ASPX), ответы на обращения к которой должны сохраняться в кэше вывода. Задайте для атрибута Duration положительное численное значение, и присвойте значение атрибуту VaryByParam.

    y18he7cw.alert_note(ru-ru,VS.90).gifПримечание.

    Директива @ OutputCache по умолчанию присваивает заголовку Cache-Control значение Any.

    Так, например, следующая директива @ OutputCache устанавливает срок действия страницы равным 60 секундам:

    <%@ OutputCache Duration="60" VaryByParam="None" %>
    
    y18he7cw.alert_note(ru-ru,VS.90).gifПримечание.

    При использовании директивы @ OutputCache необходимо включить в нее атрибут VaryByParam, поскольку в противном случае произойдет ошибка синтаксического анализа. Если в использовании функциональности, которую обеспечивает атрибут VaryByParam, нет необходимости, присвойте ему значение «None». Дополнительные сведения см. в разделе Кэширование нескольких версий страницы.

Программное определение срока действия кэша вывода для страницы

  • В коде страницы политика срока действия задается с помощью свойства Cache объекта Response.

    y18he7cw.alert_note(ru-ru,VS.90).gifПримечание.

    Если срок действия для страницы устанавливается программно, следует также задать для кэшируемой страницы заголовок 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

Практическое руководство. Задание возможности кэширования страницы программными средствами

Основные понятия

Кэширование страниц ASP.NET

Задание возможности кэширования страницы