На заметку! Пользовательские элементы управления позволяют применять Response.WriteSubstitution() для настройки их поведения по отношению к кэшированию. Например, AdRotator использует это средство для обеспечения того, чтобы реклама на странице всегда изменялась, даже когда остальная часть страницы доставляется из выходного кэша.
Одна из проблем кэширования вывода состоит в том, что вы должны встраивать инструкцию в страницу — либо в добавочную часть .aspx, либо в код класса. Хотя первый вариант (с применением OutputCache) относительно ясен, все же он порождает проблемы управления, если вы создаете десятки кэшированных страниц. Если вы хотите изменить кэширование для всех этих страниц (например, изменив время нахождения объектов в кэше с 30 до 60 секунд), то вам придется модифицировать каждую страницу. Кроме того, ASP.NET придется их все перекомпилировать.
ASP.NET 2.0 предлагает новую опцию, которая подходит, если вам нужно применить одни и те же настройки кэширования к целой группе страниц. Это средство, называемое профилями кэша, позволяет описывать настройки кэша в файле web.config, ассоциировать имя с этими настройками и затем применять их ко многим страницам сразу, указывая это имя. Таким образом, вы получаете свободу модифицировать все связанные страницы за один раз — просто изменяя соответствующий профиль кэша в файле web.config.
Чтобы определить профиль кэша, используется дескриптор <add> в разделе <outputCacheProfiles>, как показано ниже. Здесь профилю назначается имя и длительность удержания объектов в кэше.
<configuration>
<system.web>
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="ProductItemCacheProfile" duration="60" />
</outputCacheProfiles>
</outputCacheSettings>
</caching>
</system.web>
</cohfiguration>
Теперь вы можете использовать этот профиль на странице через атрибут CacheProfile:
<%@ OutputCache CacheProfile="ProductItemCacheProfile" VaryByParam="None" %>
Интересно, что если вы хотите применить другие детали настройки кэша, — такие как поведение VarуВуРаram, то можете установить их либо как атрибут директивы OutputCaclie, либо как атрибут дескриптора <add> данного профиля. Только убедитесь, что вводите информацию прописными буквами, если используете дескриптор <add>, поскольку имена свойств записываются в "верблюжьем стиле", как и все конфигурационные настройки, а регистр важен для XML.
предыдущая следующая страница вначало главы оглавление
493