This article has been localized into German by the community.
Ausgabe Cache
In diesem Kapitel werfen wir einen Blick auf die OutputCache-Direktive, die bei weitem die einfachste Methode zum Zwischenspeichern von Inhalten mit ASP.NET ist. Wie Sie in unserem Beispiel sehen werden, ist nicht einmal Code erforderlich - nur einige geringfügige Änderungen am Markup der Seite, und Sie können loslegen. Im nächsten Kapitel werden wir mehr Möglichkeiten zur Verwendung der OuputCachce-Direktive untersuchen.
Hier ist ein sehr einfaches Beispiel für eine Seite, die den Unterschied zwischen einer zwischengespeicherten und einer nicht zwischengespeicherten Seite zeigt. Versuchen Sie, ein neues Projekt zu erstellen, und ändern Sie die Seite Default.aspx so, dass sie das folgende Markup enthält:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Caching</title>
</head>
<body>
<form id="form1" runat="server">
<%= DateTime.Now.ToString() %>
</form>
</body>
</html>
Dies ist alles Standardmaterial, mit Ausnahme der Zeile mit der DateTime. Es gibt einfach das aktuelle Datum und die Uhrzeit auf der Seite aus. Führen Sie das Projekt aus und laden Sie die Seite einige Male neu. Wie Sie sehen werden, wird die Zeit bei jedem Neuladen aktualisiert. Fügen Sie nun die folgende Zeile als Zeilennummer 2 in unser Beispiel ein:
<%@ OutputCache duration="10" varybyparam="None" %>
Führen Sie unser Projekt erneut aus, und laden Sie die Seite mehrmals neu. Wie Sie sehen werden, wird die Zeit nur alle 10 Sekunden aktualisiert. Das Hinzufügen von Caching zu Ihrer Seite ist so einfach! Nun ist der Parameter duration ziemlich offensichtlich - er gibt an, wie viele Sekunden der Inhalt zwischengespeichert werden soll. Bei jeder Anforderung der Seite überprüft ASP.NET, ob sich die Seite im Cache befindet und ob sie abgelaufen ist. Es wird aus dem Cache bereitgestellt, wenn es nicht abgelaufen ist. Ist dies der Fall, wird die Seite aus dem Cache entfernt und von Grund auf neu generiert und dann in den Cache gestellt.
Der varybyparam ist ein erforderlicher Parameter der OutputCache-Direktive. Er gibt eine Liste von Parametern an, mit denen der Cache variiert werden soll. Wenn Sie ihn beispielsweise auf "p" setzen, hängt der Cache jetzt vom Wert des Parameters p ab. Versuchen Sie, unser Beispiel folgendermaßen zu ändern:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ OutputCache duration="10" varybyparam="p" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Caching</title>
</head>
<body>
<form id="form1" runat="server">
<%= DateTime.Now.ToString() %><br />
<a href="?p=1">1</a><br />
<a href="?p=2">2</a><br />
<a href="?p=3">3</a><br />
</form>
</body>
</html>
Führen Sie nun unser Beispiel erneut aus und versuchen Sie, auf die Links zu klicken. Sie haben jetzt jeweils einen eigenen Zeitstempel, der davon abhängt, wann Sie zum ersten Mal auf die Seite zugegriffen haben. Der Cache ist abhängig vom Wert des Parameters p! Sie können mehrere Parameter angeben, indem Sie sie mit einem Semikolon trennen.