Sdílet prostřednictvím


@ OutputCache

Deklarativně ovládá politiku mezipaměti výstupu stránky technologie ASP.NET nebo uživatelského ovládacího prvku obsaženého ve stránce. Další informace o výstupní mezipaměti naleznete v tématu Ukládání do mezipaměti ASP.NET.

<%@ OutputCache Duration="#ofseconds"
   Location="Any | Client | Downstream | Server | None | 
     ServerAndClient "
   Shared="True | False"
   VaryByControl="controlname"
   VaryByCustom="browser | customstring"
   VaryByHeader="headers"
   VaryByParam="parametername" 
   VaryByContentEncoding="encodings"
   CacheProfile="cache profile name | ''"
   NoStore="true | false"
   SqlDependency="database/table name pair | CommandNotification"
   ProviderName="Provider Name"  
%>

v případě vícehodnotových atributů

  • Duration
    Čas v sekundách, po který je stránka nebo uživatelský ovládací prvek uložen do mezipaměti. Nastavení tohoto atributu u stránky nebo uživatelského ovládacího prvku stanoví zásady ukončení platnosti pro odpovědi protokolu HTTP od objektů a automaticky bude ukládat do mezipaměti výstup stránky nebo uživatelského ovládacího prvku.

    PoznámkaPoznámka

    Tento atribut je vyžadován.Pokud jej nevložíte, dojde k chybě analyzátoru.

  • Location
    Jedna z následujících výčtových hodnot OutputCacheLocation: Výchozí je Any.

    PoznámkaPoznámka

    Tento atribut není podporován pro direktivy @ OutputCache obsažené v uživatelských ovládacích prvcích (soubory ASCX).

  • CacheProfile
    Název nastavení mezipaměti přidruženého ke stránce. Toto je nepovinný atribut a výchozí nastavení je prázdný řetězec ("").

    PoznámkaPoznámka

    Tento atribut není podporován pro direktivy @ OutputCache obsažené v uživatelských ovládacích prvcích (soubory ASCX).Pokud je na stránce specifikován, musí hodnota odpovídat názvu jedné z dostupných položek v elementu outputCacheProfiles oddílu outputCacheSettings.Pokud název neodpovídá položce profilu, je vyvolána výjimka.

  • NoStore
    Logická hodnota, která určuje, zda chcete zabránit sekundárnímu úložišti citlivých informací.

    PoznámkaPoznámka

    Tento atribut není podporován pro direktivy @ OutputCache obsažené v uživatelských ovládacích prvcích (soubory ASCX).Nastavení tohoto atributu na hodnotu true je ekvivalentní následujícímu kódu provedeného během žádosti:

                Response.Cache.SetNoStore();
    
  • ProviderName
    Řetězcová hodnota identifikuje vlastní zprostředkovatele na použité výstupní mezipaměti. Další informace naleznete poznámky části tohoto tématu a položka Extensible výstupní mezipaměti prostředí ASP.NET 4 (VS 2010 a.ČISTÁ řady 4.0) na blogu Scott Guthrie

    PoznámkaPoznámka

    Tento atribut je podporován pouze v uživatelských ovládacích prvků (soubory ASCX).To není podporována pro @ OutputCache směrnic, které jsou součástí prostředí ASP.ČISTÉ stránky (soubory ASPX).

  • Shared
    Logická hodnota, která určuje, zda výstup uživatelského ovládacího prvku může být sdílen více stránkami. Výchozí je false. Další informace naleznete v části Poznámky.

    PoznámkaPoznámka

    Tento atribut není podporován pro direktivy @ OutputCache obsažené ve stránkách technologie ASP.NET (ASPX soubory).

  • SqlDependency
    Řetězec, který identifikuje sadu dvojic databáze a tabulky, na které závisí výstupní mezipaměť stránky nebo ovládacího prvku. Všimněte si, že třída SqlCacheDependency sleduje tabulku v databázi, na které závisí výstupní mezipaměť tak, že při aktualizaci položek v tabulce jsou v případě použití cyklického dotazování tyto položky odebrány. Při použití oznámení (v Microsoft SQL Server 2005) s hodnotou CommandNotification, je nakonec použita třída SqlDependency pro registraci oznamování dotazů se serverem SQL Server 2005.

    PoznámkaPoznámka

    Hodnota CommandNotification atributu SqlDependency je platná pouze pro webové stránky (ASPX).Uživatelské ovládací prvky mohou použít pouze cyklické dotazování s direktivou @ OutputCache.

  • VaryByCustom
    Jakýkoli text, který představuje vlastní požadavky na výstupní mezipaměť. Pokud je tomuto atributu přiřazena hodnota browser, mění se mezipaměť podle názvu prohlížeče a informace o hlavní verzi. Pokud je zadán vlastní řetězec, je nutné přepsat metodu GetVaryByCustomString v souboru Global.asax dané aplikace.

  • VaryByHeader
    Seznam oddělený středníky obsahující záhlaví protokolu HTTP použité k odlišení výstupní mezipaměti. Pokud je tento atribut nastaven na více záhlaví, obsahuje výstupní mezipaměť různé verze požadovaného dokumentu pro každou kombinaci zadaného záhlaví.

    PoznámkaPoznámka

    Nastavení atributu VaryByHeader umožňuje ukládání položek do mezipaměti ve všech verzích vyrovnávací paměti protokolu HTTP verze 1.1, ne jenom pro vyrovnávací paměť ASP.NET.Tento atribut není v uživatelských ovládacích prvcích podporován pro direktivu @ OutputCache.

  • VaryByParam
    Seznam oddělený středníky obsahující řetězce použité k odlišení výstupní mezipaměti. Ve výchozím nastavení odpovídají tyto řetězce hodnotě dotazovacího řetězce odeslaným s atributy metody GET, nebo parametru odeslanému pomocí metody POST . Pokud je tento atribut nastaven na více parametrů, obsahuje výstupní mezipaměť různé verze požadovaného dokumentu pro každou kombinaci zadaných parametrů. Přípustné hodnoty zahrnují none, hvězdičku (*) a jakýkoli dotazovací řetězec nebo název parametru POST.

    Poznámka k upozorněníUpozornění

    V případě použití direktivy @ OutputCache na stránce ASP.NET nebo v uživatelském ovládacím prvku, je požadován buď tento atribut, nebo atribut VaryByControl.K chybě analyzátoru dochází, pokud se jej nepodaří zahrnout.Pokud nechce specifikovat parametr pro obměnu obsahu mezipaměti, nastavte hodnotu none.Pokud chcete měnit výstupní mezipaměť všemi hodnotami parametru, nastavte atribut na hvězdičku (*).

  • VaryByControl
    Seznam oddělený středníky obsahující řetězce použité k rozlišení výstupní mezipaměti uživatelského ovládacího prvku. Tyto řetězce představují hodnoty vlastnosti ID serverových ovládacích prvků technologie ASP.NET deklarované v uživatelském ovládacím prvku. Další informace naleznete v tématu Uložení částí stránky technologie ASP.NET v mezipaměti.

    PoznámkaPoznámka

    V případě použití direktivy VaryByParam na stránce ASP.NET nebo v uživatelském ovládacím prvku, je požadován buď tento atribut, nebo atribut @ OutputCache.

  • VaryByContentEncodings
    Seznam oddělený středníky obsahující řetězce použité k odlišení výstupní mezipaměti. Atribut VaryByContentEncodings je použit s hlavičkou Accept-Encoding pro zjištění, jak jsou odpovědi mezipaměti vydávány pro různá kódování obsahu. Další informace o zadání Accept-Encoding záhlaví, naleznete v části 14.3 Hypertext Transfer Protocol--HTTP/1.1 specifikace W3C webu.

Poznámky

Nastavení hodnot výstupní mezipaměti stránky je stejné jako manipulace s metodami SetExpires and SetCacheability prostřednictvím vlastnosti Cache.

Pokud stránka Webových formulářů vyžaduje ověření, aby byla zobrazena uživateli, nastaví výstupní mezipaměť hlavičku protokolu HTTP Cache-Control na private. Další informace o těchto tématech naleznete v tématu Použití mezipaměti stránek technologie ASP.NET.

Pokud je nastaven atribut Shared na true, může být výstup ovládacího prvku v mezipaměti zpřístupněn více stránkám webových formulářů. Není-li nastaven na true, ukládá se ve výchozím nastavení jedna verze výstupu uživatelského ovládacího prvku pro každou stránku obsahující tento ovládací prvek. Můžete potenciálně ušetřit značné množství paměti tím, že povolíte atribut Shared. Další informace naleznete v tématu Uložení částí stránky technologie ASP.NET v mezipaměti.

Příklad

Následující příklad kódu ukazuje, jak lze nastavit dobu trvání, po jakou je výstup ovládacího prvku nebo uživatelského ovládacího prvku ukládán do mezipaměti.

<%@ OutputCache Duration="100" VaryByParam="none" %>

Další příklad kódu ukazuje, jak můžete určit, aby výstup mezipaměti ukládal do mezipaměti stránku nebo uživatelský ovládací prvek podle jeho umístění a počtu parametrů formuláře z metody POST nebo z řetězce dotazu. Každá žádost protokolu HTTP přicházející z jiného umístění nebo s jiným počtem parametrů (nebo obojí) je uložena do mezipaměti na dobu deseti sekund. Jakékoli následné požadavky se stejnými hodnotami parametrů jsou obslouženy z mezipaměti, dokud položka nevyprší.

<%@ OutputCache Duration="10" VaryByParam="location;count" %>

Viz také

Odkaz

Syntaxe šablony textu směrnice

Koncepty

Přehled mezipaměti technologie ASP.NET

Použití mezipaměti stránek technologie ASP.NET

Uložení částí stránky technologie ASP.NET v mezipaměti

Přehled syntaxe webová stránky technologie ASP.NET