@ OutputCache

Steuert deklarativ die Richtlinien für Ausgabecaches einer ASP.NET-Seite oder eines ASP.NET-Benutzersteuerelements auf der Seite. Weitere Informationen über den Ausgabecache finden Sie unter ASP.NET-Zwischenspeicherung.

<%@ 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"  
%>

Attribute

  • Duration
    Die Zeit in Sekunden, die die Seite oder das Benutzersteuerelement zwischengespeichert werden. Durch Festlegen dieses Attributs für eine Seite oder ein Benutzersteuerelement werden Ablaufrichtlinien für HTTP-Antworten vom Objekt erstellt. Außerdem wird die Ausgabe der Seite oder des Benutzersteuerelements automatisch zwischengespeichert.

    HinweisHinweis

    Dieses Attribut ist erforderlich.Wenn Sie es nicht einfügen, tritt ein Parserfehler auf.

  • Location
    Einer der OutputCacheLocation-Enumerationswerte. Der Standardwert ist Any.

    HinweisHinweis

    Dieses Attribut wird nicht für @ OutputCache-Direktiven in Benutzersteuerelementen (ASCX-Dateien) unterstützt.

  • CacheProfile
    Der Name der Cacheeinstellungen, die der Seite zugeordnet werden sollen. Dies ist ein optionales Attribut. Der Standardwert ist eine leere Zeichenfolge ("").

    HinweisHinweis

    Dieses Attribut wird nicht für @ OutputCache-Direktiven in Benutzersteuerelementen (ASCX-Dateien) unterstützt.Wenn Sie das Attribut auf einer Seite angeben, muss der Wert dem Namen eines der verfügbaren Einträge im outputCacheSettings-Element des outputCacheProfiles-Abschnitts entsprechen.Wenn der Name keinem Profileintrag entspricht, wird eine Ausnahme ausgelöst.

  • NoStore
    Ein boolescher Wert, der bestimmt, ob das sekundäre Speichern vertraulicher Informationen verhindert wird.

    HinweisHinweis

    Dieses Attribut wird nicht für @ OutputCache-Direktiven in Benutzersteuerelementen (ASCX-Dateien) unterstützt.Das Festlegen des Attributs auf true entspricht der Ausführung des folgenden Codes während der Anforderung:

                Response.Cache.SetNoStore();
    
  • ProviderName
    Ein Zeichenfolgenwert, der den zu verwendenden benutzerdefinierten Ausgabecacheanbieter angibt. Weitere Informationen finden Sie im Abschnitt Hinweise in diesem Thema und unter Extensible Output Caching with ASP.NET 4 (VS 2010 and .NET 4.0 Series) im Blog von Scott Guthrie.

    HinweisHinweis

    Dieses Attribut wird nur in Benutzersteuerelementen (ASCX-Dateien) unterstützt.Wird nicht für @ OutputCache-Direktiven in ASP.NET-Seiten (ASPX-Dateien) unterstützt.

  • Shared
    Ein boolescher Wert, der festlegt, ob mehrere Seiten Ausgaben von Benutzersteuerelementen gemeinsam nutzen können. Der Standardwert ist false. Weitere Informationen finden Sie im Abschnitt Hinweise.

    HinweisHinweis

    Dieses Attribut wird nicht für @ OutputCache-Direktiven in ASP.NET-Seiten (ASPX-Dateien) unterstützt.

  • SqlDependency
    Ein Zeichenfolgenwert, der eine Gruppe von Datenbank-Tabellen-Namenspaaren bezeichnet, von denen der Ausgabecache einer Seite oder eines Steuerelements abhängig ist. Beachten Sie, dass die SqlCacheDependency-Klasse die Tabelle in einer Datenbank überwacht, von der der Ausgabecache abhängig ist, sodass beim Aktualisieren von Elementen in einer Tabelle diese Elemente aus dem Cache entfernt werden, wenn tabellenbasiertes Abrufen verwendet wird. Wenn Sie Benachrichtigungen mit dem Wert CommandNotification verwenden (in Microsoft SQL Server 2005), wird letztendlich eine SqlDependency-Klasse verwendet, um eine Registrierung für Abfragebenachrichtigungen beim SQL Server 2005-Server vorzunehmen.

    HinweisHinweis

    Der CommandNotification-Wert für das SqlDependency-Attribut ist nur auf Webseiten (.aspx) gültig.Benutzersteuerelemente können tabellenbasiertes Abrufen nur mit der @ OutputCache-Direktive verwenden.

  • VaryByCustom
    Beliebiger Text, der benutzerdefinierte Anforderungen für Ausgabecaches darstellt. Wenn für das Attribut der Wert browser festgelegt ist, variiert der Cache je nach Browsername und Hauptversionsinformation. Wenn eine benutzerdefinierte Zeichenfolge eingegeben wird, müssen Sie die GetVaryByCustomString-Methode in der Datei Global.asax der Anwendung überschreiben.

  • VaryByHeader
    Eine durch Semikolon getrennte Liste von HTTP-Headern, die zum Ändern des Ausgabecaches verwendet werden. Wenn dieses Attribut auf mehrere Header festgelegt wird, enthält der Ausgabecache für jede Kombination der angegebenen Header eine andere Version des angeforderten Dokuments.

    HinweisHinweis

    Durch Festlegen des VaryByHeader-Attributs wird das Zwischenspeichern von Elementen nicht nur im ASP.NET-Cache, sondern in allen HTTP-Caches der Version 1.1 aktiviert.Dieses Attribut wird nicht für @ OutputCache-Direktiven in Benutzersteuerelementen unterstützt.

  • VaryByParam
    Eine durch Semikolon getrennte Liste von Zeichenfolgen, die zum Ändern des Ausgabecaches verwendet werden. In der Standardeinstellung entsprechen diese Zeichenfolgen dem Wert einer Abfragezeichenfolge, die mit GET-Methodenattributen gesendet wurde, oder einem Parameter, der mit der POST-Methode gesendet wurde. Wenn dieses Attribut auf mehrere Parameter festgelegt wird, enthält der Ausgabecache für jede Kombination der angegebenen Parameter eine andere Version des angeforderten Dokuments. Mögliche Werte sind none, ein Sternchen (*) oder eine beliebige gültige Abfragezeichenfolge bzw. ein beliebiger gültiger POST-Parametername.

    WarnhinweisVorsicht

    Entweder dieses Attribut oder das VaryByControl-Attribut ist erforderlich, wenn Sie die @ OutputCache-Direktive für ASP.NET-Seiten und -Benutzersteuerelemente verwenden.Wenn Sie dieses nicht einfügen, tritt ein Parserfehler auf.Wenn Sie keinen Parameter zum Ändern des zwischengespeicherten Inhalts angeben möchten, legen Sie den Wert auf none fest.Wenn der Ausgabecache anhand aller Parameterwerte variiert werden soll, legen Sie das Attribut auf ein Sternchen (*) fest.

  • VaryByControl
    Eine durch Semikolon getrennte Liste von Zeichenfolgen, die zum Ändern des Ausgabecaches eines Benutzersteuerelements verwendet werden. Diese Zeichenfolgen stellen die ID-Eigenschaftswerte der ASP.NET-Serversteuerelemente dar, die im Benutzersteuerelement deklariert wurden. Weitere Informationen finden Sie unter Zwischenspeichern von Teilen einer ASP.NET-Seite.

    HinweisHinweis

    Entweder dieses Attribut oder das VaryByParam-Attribut ist erforderlich, wenn Sie die @ OutputCache-Direktive für ASP.NET-Seiten und -Benutzersteuerelemente verwenden.

  • VaryByContentEncodings
    Eine durch Semikolon getrennte Liste von Zeichenfolgen, die zum Variieren des Ausgabecaches verwendet werden. Das VaryByContentEncodings-Attribut wird mit dem Accept-Encoding-Header verwendet, um zu bestimmen, wie zwischengespeicherte Antworten für unterschiedliche Inhaltscodierungen bereitgestellt werden. Weitere Informationen zum Angeben des Accept-Encoding-Headers finden Sie im Abschnitt 14.3 der Hypertext Transfer Protocol -- HTTP/1.1-Spezifikation auf der W3C-Website.

Hinweise

Das Festlegen der Werte für den Seitenausgabecache entspricht einer Änderung der SetExpires-Methode und der SetCacheability-Methode über die Cache-Eigenschaft.

Wenn zum Anzeigen einer Web Forms-Seite für einen Benutzer eine Autorisierung erforderlich ist, legt der Ausgabecache den Cache-Control-HTTP-Header auf private fest. Weitere Informationen zu diesen Themen finden Sie unter Zwischenspeichern von ASP.NET-Seiten.

Wenn das Shared-Attribut auf true festgelegt wird, können mehrere Web Forms-Seiten auf die zwischengespeicherte Ausgabe eines Benutzersteuerelements zugreifen. Wenn Sie den Wert nicht auf true festlegen, wird als Standardverhalten für jede Seite, die dieses Benutzersteuerelement enthält, eine Version der Benutzersteuerelementausgabe zwischengespeichert. Sie können möglicherweise erheblich an Speicherplatz sparen, wenn Sie das Shared-Attribut aktivieren. Weitere Informationen finden Sie unter Zwischenspeichern von Teilen einer ASP.NET-Seite.

Beispiel

Das folgende Codebeispiel veranschaulicht, wie Sie die Dauer festlegen, für die eine Seite oder ein Benutzersteuerelement zwischengespeichert wird.

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

Das folgende Codebeispiel veranschaulicht, wie Sie den Ausgabecache anweisen können, eine Seite oder ein Benutzersteuerelement je nach Position und Anzahl von Formularparametern in der POST-Anweisung für ein Formular oder in einer Abfragezeichenfolge zwischenzuspeichern. Jede HTTP-Anforderung, die mit einem anderen location-Parameter oder count-Parameter (oder beidem) empfangen wird, wird für 10 Sekunden zwischengespeichert. Alle nachfolgenden Anforderungen mit denselben Parameterwerten werden aus dem Cache beantwortet, bis der Eintrag abläuft.

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

Siehe auch

Referenz

Syntax für Textvorlagendirektiven

Konzepte

Übersicht über das Zwischenspeichern in ASP.NET

Zwischenspeichern von ASP.NET-Seiten

Zwischenspeichern von Teilen einer ASP.NET-Seite

Übersicht über die Syntax von ASP.NET-Webseiten