Практическое руководство. Кэширование версий страницы при помощи запрашивающего обозревателя
Обновлен: Ноябрь 2007
Если веб-приложение содержит страницу, которая создает различные выходные данные на основе типа запрашивающего обозревателя, то можно кэшировать версии выходных данных страницы в зависимости от основного номера версии обозревателя, который запрашивает страницу. Так, например, при запросе страницы из обозревателя Internet Explorer 6 кэшируется одна версия страницы. При запросе страницы из обозревателя Netscape Navigator, другой версии Internet Explorer или любого другого обозревателя в кэш вывода будет добавлен другой вариант страницы.
![]() |
---|
Информация об основном номере версии и типе обозревателя передается в свойстве MajorVersion объекта HttpBrowserCapabilities в текущем запросе. Дополнительные сведения см. в разделе Практическое руководство. Определение типов обозревателей на веб-страницах ASP.NET. |
Декларативное кэширование нескольких вариантов страницы в зависимости от типа обозревателя
На странице ASP.NET следует использовать директиву @ OutputCache с необходимыми атрибутами Duration и VaryByParam или VaryByControl. Атрибут Duration должен иметь целое положительное значение. Если кэширование должно учитывать только тип обозревателя, то атрибуту VaryByParam следует присвоить значение «None».
Включите в директиву @ OutputCache атрибут VaryByCustom и задайте для него значение «browser».
В следующем примере страница будет кэшироваться на протяжении 10 секунд. Выходные данные будут меняться в зависимости от типа обозревателя.
<%@ OutputCache Duration="10" VaryByParam="None" VaryByCustom="browser" %>
Программное кэширование нескольких вариантов страницы в зависимости от типа обозревателя
В коде страницы вызовите методы SetExpires и SetCacheability применительно к свойству Cache свойства Response страницы.
Вызовите метод SetVaryByCustom, передавая значение «browser» в параметре custom.
В следующем примере кода показано кэширование нескольких вариантов страницы на протяжении одной минуты. Выходные данные будут меняться в зависимости от типа обозревателя, пославшего запрос.
protected void Page_Load(object sender, EventArgs e) { Response.Cache.SetExpires(DateTime.Now.AddMinutes(1d)); Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.SetValidUntilExpires(true); Response.Cache.SetVaryByCustom("browser"); }
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Response.Cache.SetExpires(DateTime.Now.AddMinutes(1.0)) Response.Cache.SetCacheability(HttpCacheability.Public) Response.Cache.SetValidUntilExpires(True) Response.Cache.SetVaryByCustom("browser") End Sub
См. также
Задачи
Практическое руководство. Декларативное задание возможности кэширования страницы ASP.NET
Практическое руководство. Задание возможности кэширования страницы программными средствами
Практическое руководство. Кэширование версий страницы с использованием параметров
Практическое руководство. Кэширование нескольких вариантов страницы с помощью заголовков HTTP
Практическое руководство. Кэширование версий страницы на основании пользовательских строк