Gewusst wie: Zwischenspeichern von Versionen einer Seite mithilfe des anfordernden Browsers
Aktualisiert: November 2007
Wenn die Webanwendung eine Seite enthält, die in Abhängigkeit vom anfordernden Browser eine jeweils andere Ausgabe erstellt, können Sie die verschiedenen Versionen der Seitenausgabe anhand der Hauptversion des die Seite anfordernden Browsers zwischenspeichern. Wenn z. B. Internet Explorer 6 eine Seite anfordert, wird eine Version der Seite zwischengespeichert. Wenn ein Browser wie Netscape Navigator, eine andere Version von Internet Explorer oder ein beliebiger anderer Browser die Seite anfordert, wird eine andere Seitenversion in den Ausgabecache geladen.
Hinweis: |
---|
Die Informationen zu Hauptversion und Typ des Browsers werden in der aktuellen Anforderung über die MajorVersion-Eigenschaft des HttpBrowserCapabilities-Objekts übergeben. Weitere Informationen finden Sie unter Gewusst wie: Erkennen von Browsertypen auf ASP.NET-Webseiten. |
So werden mehrere Versionen einer Seite deklarativ anhand des Browsertyps zwischengespeichert
Fügen Sie der ASP.NET-Seite eine @ OutputCache-Direktive mit den erforderlichen Attributen Duration und VaryByParam oder VaryByControl hinzu. Das Duration-Attribut muss auf eine ganze Zahl größer als 0 festgelegt werden. Wenn Sie nur nach Browsertyp zwischenspeichern möchten, legen Sie das VaryByParam-Attribut auf "Keine" fest.
Fügen Sie der @ OutputCache-Direktive das VaryByCustom-Attribut hinzu, und legen Sie es auf "Browser" fest.
Im folgenden Beispiel wird die Seite 10 Sekunden lang zwischengespeichert. Die Ausgabe ändert sich je nach Browsertyp.
<%@ OutputCache Duration="10" VaryByParam="None" VaryByCustom="browser" %>
So werden mehrere Versionen einer Seite anhand des Browsertyps programmgesteuert zwischengespeichert.
Rufen Sie im Seitencode die SetExpires-Methode und die SetCacheability-Methode für die Cache-Eigenschaft der Response-Eigenschaft der Seite auf.
Rufen Sie die SetVaryByCustom-Methode auf, und übergeben Sie den Wert "browser" im custom-Parameter.
Im folgenden Codebeispiel wird gezeigt, wie mehrere Versionen einer Seite eine Minute lang zwischengespeichert werden. Die Ausgabe ändert sich je nach Typ des Browsers, der die Seite anfordert.
protected void Page_Load(object sender, EventArgs e) { Response.Cache.SetExpires(DateTime.Now.AddMinutes(1d)); Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.SetValidUntilExpires(true); Response.Cache.SetVaryByCustom("browser"); }
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Response.Cache.SetExpires(DateTime.Now.AddMinutes(1.0)) Response.Cache.SetCacheability(HttpCacheability.Public) Response.Cache.SetValidUntilExpires(True) Response.Cache.SetVaryByCustom("browser") End Sub
Siehe auch
Aufgaben
Gewusst wie: Deklaratives Festlegen der Cachefähigkeit einer ASP.NET-Seite
Gewusst wie: Programmgesteuertes Festlegen der Cachefähigkeit einer Seite
Gewusst wie: Zwischenspeichern von Versionen einer Seite mithilfe von Parametern
Gewusst wie: Zwischenspeichern verschiedener Versionen einer Seite nach HTML-Headerwerten
Konzepte
Zwischenspeichern von ASP.NET-Seiten