Dynamisches Aktualisieren von Bereichen einer zwischengespeicherten Seite

Aktualisiert: November 2007

Durch Zwischenspeichern einer Seite kann die Leistung einer Webanwendung deutlich verbessert werden. In manchen Fällen muss jedoch der größte Teil der Seite zwischengespeichert werden und einige Fragmente innerhalb der Seite müssen dynamisch sein. Wenn Sie z. B. eine Seite mit Nachrichten erstellen, die für einen festgelegten Zeitraum vollständig statisch ist, können Sie die Zwischenspeicherung für die gesamte Seite festlegen. Wenn Sie ein rotierendes Werbebanner einfügen möchten, das sich bei jeder Seitenanforderung ändert, muss der Teil der Seite mit der Werbung dynamisch sein.

Um eine Seite zwischenzuspeichern und dabei einen Teil des Inhalts dynamisch zu ersetzen, kann die Postcacheersetzung in ASP.NET verwendet werden. Mit der Postcacheersetzung wird die ganze Seite ausgegeben, wobei bestimmte Teile als von der Zwischenspeicherung ausgenommen gekennzeichnet sind. Im Beispiel mit den Werbebannern kann mit dem AdRotator-Steuerelement die Postcacheersetzung verwendet werden, um die für jeden Benutzer und für jede Seite dynamisch erstellten Anzeigen zu aktualisieren.

Es gibt drei Möglichkeiten, die Postcacheersetzung zu implementieren:

  • Deklarativ mithilfe des Substitution-Steuerelements.

  • Programmgesteuert mithilfe der API des Substitution-Steuerelements.

  • Implizit mithilfe des AdRotator-Steuerelements.

Substitution-Steuerelement

Das ASP.NET-Substitution-Steuerelement gibt einen Abschnitt einer zwischengespeicherten Seite an, der dynamisch und nicht zwischengespeichert erstellt wurde. Platzieren Sie ein Substitution-Steuerelement an der Position auf der Seite, wo der dynamische Inhalt angezeigt werden soll.

Das Substitution-Steuerelement ruft zur Laufzeit eine Methode auf, die Sie mit der MethodName-Eigenschaft angeben. Die Methode muss eine Zeichenfolge zurückgeben, die dann den Inhalt des Substitution-Steuerelements ersetzt. Die Methode muss eine statische Methode für das enthaltende Page- oder UserControl-Steuerelement sein.

Mithilfe des Substitution-Steuerelements wird die clientseitige Cachefähigkeit in die Cachefähigkeit für den Server geändert, sodass die Seite nicht auf dem Client zwischengespeichert wird. Hierdurch wird sichergestellt, dass zukünftige Anforderungen an die Seite die Methode erneut aufrufen, um dynamischen Inhalt zu generieren.

Substitution-API

Um dynamischen Inhalt für eine zwischengespeicherte Seite programmgesteuert zu erstellen, können Sie die WriteSubstitution-Methode im Seitencode aufrufen und dabei den Namen der Methode als Parameter übergeben. Die Methode, die das Erstellen des dynamischen Inhalts behandelt, nimmt einen einzelnen HttpContext-Parameter an und gibt eine Zeichenfolge zurück. Die Rückgabezeichenfolge ist der Inhalt, der an der angegebenen Position ersetzt wird. Ein Vorteil des Aufrufens der WriteSubstitution-Methode anstelle der deklarativen Verwendung des Substitution-Steuerelements besteht darin, dass Sie eine Methode jedes beliebigen Objekts aufrufen können, und nicht eine statische Methode des Page-Objekts oder des UserControl-Objekts aufrufen müssen.

Durch Aufrufen der WriteSubstitution-Methode wird die clientseitige Cachefähigkeit in die Cachefähigkeit für den Server geändert, sodass die Seite nicht auf dem Client zwischengespeichert wird. Dies stellt sicher, dass zukünftige Anforderungen an die Seite die Methode erneut aufrufen, um dynamischen Inhalt zu generieren.

AdRotator-Steuerelement

Das AdRotator-Serversteuerelement implementiert intern die Unterstützung für die Postcacheersetzung. Wenn Sie ein AdRotator-Steuerelement auf der Seite platzieren, wird bei jeder Anforderung eine bestimmte Anzeige wiedergegeben, unabhängig davon, ob die übergeordnete Seite zwischengespeichert wird. Daher wird eine Seite, die ein AdRotator-Steuerelement enthält, nur serverseitig zwischengespeichert.

Siehe auch

Konzepte

Übersicht über das Zwischenspeichern in ASP.NET

Zwischenspeichern von ASP.NET-Seiten

Zwischenspeichern mehrerer Versionen einer Seite

Zwischenspeichern von Teilen einer ASP.NET-Seite

Zwischenspeichern von Anwendungsdaten

Zwischenspeichern in ASP.NET mithilfe der SqlCacheDependency-Klasse