@ OutputCache
Aktualisiert: November 2007
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"
%>
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.Tipp
Dieses Attribut ist erforderlich. Wenn Sie es nicht einfügen, tritt ein Parserfehler auf.
Location
Einer der OutputCacheLocation-Enumerationswerte. Der Standardwert ist Any.Tipp
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 ("").Tipp
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.Tipp
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();
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.Tipp
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.Tipp
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.Tipp
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. Standardmäßig entspricht diese Zeichenfolge einem Abfragezeichenfolgenwert, der mit Attributen der GET-Methode gesendet wurde, oder einem Parameter der POST-Methode. 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.Warnung
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-Eigenschaftenwerte der ASP.NET-Serversteuerelemente dar, die im Benutzersteuerelement deklariert wurden. Weitere Informationen finden Sie unter Zwischenspeichern von Teilen einer ASP.NET-Seite.Tipp
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 das Attribut nicht auf true festlegen, wird als Standardverhalten für jede Seite mit diesem Benutzersteuerelement eine Version der Ausgabe des Benutzersteuerelements 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
Konzepte
Zwischenspeichern von ASP.NET-Seiten
Zwischenspeichern von Teilen einer ASP.NET-Seite
Übersicht über die Syntax von ASP.NET-Webseiten