This article has been localized into German by the community.
Caching Objekte
Da die GetFreshDateTime-Methode vom Substitution-Steuerelement aufgerufen werden muss, muss sie ein bestimmtes "Format" einhalten. Sie muss den HttpContext als Parameter verwenden, eine Zeichenfolge zurückgeben und statisch sein. Jetzt können Sie mit HttpContext auf alle Arten von Informationen über die Anforderung usw. zugreifen, um den richtigen Wert zurückzugeben. Im Moment geben wir einfach die aktuelle Datums- und Uhrzeitangabe zurück. Führen Sie das Beispiel aus und sehen Sie, wie der erste Datenstempel zwischengespeichert wird, während der zweite jedes Mal neu geladen wird. So einfach ist das!...
protected void Page_Load(object sender, EventArgs e)
{
ArrayList datestamps;
if(Cache["datestamps"] == null)
{
datestamps = new ArrayList();
datestamps.Add(DateTime.Now);
datestamps.Add(DateTime.Now);
datestamps.Add(DateTime.Now);
Cache.Add("datestamps", datestamps, null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(0, 0, 60), System.Web.Caching.CacheItemPriority.Default, null);
}
else
datestamps = (ArrayList)Cache["datestamps"];
foreach(DateTime dt in datestamps)
Response.Write(dt.ToString() + "<br />");
}
Führen Sie dieses Beispiel aus und laden Sie die Seite neu. 3 Instanzen des aktuellen Datums werden in eine ArrayList gestellt, und die Liste wird dann mithilfe des Cache-Objekts zwischengespeichert. Bei jedem Laden der Seite wird der Cache unter Verwendung eines von uns angegebenen Namens daraufhin überprüft, ob er unsere ArrayList enthält. Ist dies nicht der Fall, wird die Liste generiert, gefüllt und zwischengespeichert. Befindet sich die ArrayList bereits im Cache, ziehen wir sie heraus und wandeln sie in den richtigen Typ um (alles wird als Objekttyp gespeichert). Egal woher wir die Liste nehmen, wir durchlaufen sie und geben jeden Wert aus.
Das meiste sollte ziemlich einfach sein, mit Ausnahme der Zeile, in der wir die Liste zum Cache hinzufügen. Die Add-Methode benötigt eine Reihe von Parametern, und ich werde versuchen, sie alle zu erklären.
Zunächst den Schlüssel, nach dem wir unser Objekt speichern möchten, in diesem Fall nennen wir es einfach "Datumsstempel". Der Schlüssel wird verwendet, um das Objekt aus dem Cache zurückzuholen.
Der nächste Parameter ist das Objekt, das zwischengespeichert werden soll, ohne dass dies erklärt werden muss.
Als Nächstes folgt der Parameter CacheDependency. Hiermit kann ASP.NET mitgeteilt werden, dass das zwischengespeicherte Element von anderen Elementen abhängt, sodass ASP.NET den Cache ungültig machen kann, wenn sich eines dieser Elemente ändert.
Die folgenden beiden Parameter teilen ASP.NET mit, wie und wann das Element im Cache ablaufen soll. Der erste gibt einen absoluten Ablauf an, dh, der Artikel läuft zu einer bestimmten Tageszeit ab. Dies ist normalerweise nicht das, was Sie wollen, also setzen wir es auf NoAbsoluteExpiration. Als nächstes können wir einen gleitenden Ablauf festlegen, was bedeutet, dass der Gegenstand nach einer bestimmten Zeitspanne abläuft, je nachdem, wann der Gegenstand in den Cache gestellt wird. Die TimeSpan-Klasse wird verwendet, und wir geben an, dass sie nach 0 Stunden, 0 Minuten und 60 Sekunden ablaufen soll. Für das Element im Cache kann eine Priorität festgelegt werden. Dies wird verwendet, wenn ASP.NET Elemente aus dem Cache entfernt. Elemente mit einer niedrigeren Priorität werden zuerst entfernt.
Mit dem letzten Parameter können wir eine Rückruffunktion für das Element angeben, die aufgerufen wird, sobald das Element aus dem Cache entfernt wurde, falls Sie dies benötigen. Wir geben einfach einen Nullwert an.
Wie Sie sehen, ist das Speichern von Elementen mithilfe des Cache-Objekts also sehr einfach. Natürlich verdienen wir in diesem Beispiel keine wirkliche Leistung, aber nur die Vorstellungskraft ist hier die Grenze. Eine der häufigsten Methoden ist das Speichern von Objekten, die aus einer Datenbank abgerufen wurden, im Cache. Sparen Sie also Ressourcen auf dem Datenbankcomputer und ermöglichen Sie das schnellere Laden von Seiten.