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


Кэширование нескольких версий страницы

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

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

Платформа ASP.NET позволяет кэшировать несколько вариантов страницы в кэше вывода. Различия в кэше вывода могут определяться следующими параметрами:

  • Строка запроса в изначальном запросе (HTTP GET).

  • Значения элементов управления, передаваемые при обратной передаче (значения HTTP POST).

  • Заголовки HTTP, переданные с запросом.

  • Основной номер версии обозревателя, инициировавшего запрос.

  • Пользовательская строка на странице. В этом случае в файле Global.asax создается пользовательский код, определяющий поведение страницы при кэшировании.

Кэшировать несколько версий вывода страницы можно декларативным путем, используя атрибуты директивы @ OutputCache, или же программным путем — используя свойства и методы класса HttpCachePolicy.

Директива @ OutputCache имеет четыре атрибута, позволяющих кэшировать несколько версий вывода страницы:

  • Атрибут VaryByParam, который позволяет варьировать кэшируемый вывод в зависимости от строки запроса.

  • Атрибут VaryByControl, который позволяет варьировать кэшируемый вывод в зависимости от значения элемента управления.

  • Атрибут VaryByHeader, который позволяет варьировать кэшируемый вывод в зависимости от заголовка HTTP, соответствующего запросу.

  • Атрибут VaryByCustom, который позволяет варьировать кэшируемый вывод в зависимости от типа обозревателя или от пользовательской строки, определенной разработчиком.

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

    В любую директиву @ OutputCache необходимо включить атрибут VaryByParam либо атрибут VaryByControl. Тем не менее, если изменять кэшируемый вывод в зависимости от элементов управления или параметров не требуется, можно задать для свойства VaryByParam значение None.

Класс HttpCachePolicy содержит два свойства и метод, позволяющие программным путем задавать настройки кэширования, аналогичные тем, которые задаются декларативно. Свойства VaryByParams и VaryByHeaders позволяют указать имена параметров строки запроса и, соответственно, заголовков, в зависимости от которых должна варьироваться политика кэширования. Метод SetVaryByCustom позволяет определить пользовательские строки, по которым будет варьироваться кэш вывода.

См. также

Задачи

Практическое руководство. Декларативное задание возможности кэширования страницы ASP.NET

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

Практическое руководство. Кэширование версий страницы при помощи запрашивающего обозревателя

Практическое руководство. Кэширование версий страницы с использованием параметров

Практическое руководство. Кэширование нескольких вариантов страницы с помощью заголовков HTTP

Практическое руководство. Кэширование версий страницы на основании пользовательских строк

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

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

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