Asp.net unterstützt drei Arten von Cache.
Ich möchte einen kurzen technischen Überblick schreiben, aber das könnte zu viel sein. Der Zweck des technischen Überblicks besteht darin, die technischen Punkte auf die schnellste und einfachste Weise zu beschreiben, was hoffentlich auch die effizienteste Art der Wissensverbreitung ist.
1. Seiten-/Steuercache
2. Cache auf Anwendungsebene
3. Browser-Client-Cache
Aus Sicht der Implementierung werden der Seiten-/Steuerungscache und der Cache auf Anwendungsebene im Serverspeicher gespeichert. Wenn der Speicher knapp wird, werden diese Inhalte möglicherweise im Voraus gelöscht, bevor sie ungültig werden. (Die Eigenschaften des Caches bestimmen, dass diese Inhalte sicher gelöscht werden können). Der Cache des Browser-Clients wird im Cache des Client-Browsers gespeichert. Beispielsweise fungiert der temporäre Ordner des IE als Cache. Jedes Mal, wenn ein Benutzer eine Seite anfordert, durchsucht der Browser zunächst den Cache, um festzustellen, ob Cache-Inhalte vorhanden sind, die den Anforderungen entsprechen und nicht abgelaufen sind. Wenn ja, liest er diese direkt aus dem Cache und überspringt die Netzwerkübertragung.
Im Folgenden wird die spezifische Schreibmethode in Asp.net demonstriert:
1. Der Seiten-/Steuercache kann in der ASPX- oder ASCX-Datei oder im Code dahinter deklariert werden.
<%@ OutputCache Duration="#ofseconds"
Location="Any | Client | Downstream | Server | None |
ServerAndClient "
Shared="True | False"
VaryByControl="controlname"
VaryByCustom="browser | customstring"
VaryByHeader="headers"
VaryByParam ="parametername"
CacheProfile="Cache-Profilname | ''"
NoStore="true | false"
SqlDependency="Datenbank-/Tabellennamenpaar | CommandNotification"
%>
Die Hauptparameter sind:
Dauer: effektive Cache-Zeit, Einheit Sekunden
Gemeinsam genutzt: Es ist nur für Steuerelemente gültig. Wenn ein Steuerelement gleichzeitig auf mehrere Seiten angewendet werden kann, können mehrere Seiten diesen Cache gemeinsam nutzen, ohne dass jede Seite ihren eigenen Cache für dieses Steuerelement verwaltet?
VaryByControl: Der Cache ändert sich mit der ID des Steuerelements.
Die Variable wird hier angegeben und sollte in Global.ascx implementiert werden:
öffentliche Überschreibungszeichenfolge GetVaryByCustomString (
HttpContext-Kontext,
Zeichenfolge benutzerdefinierte
)
. Anweisung Der benutzerdefinierte Parameter ist die in OutPutcache deklarierte Variable. Unterschiedliche Cache-Inhalte werden durch die Rückgabe unterschiedlicher Zeichenfolgenwerte für verschiedene benutzerdefinierte Parameter in dieser Funktion dargestellt.
VaryByHeader, VaryByParam und CacheProfile legen außerdem unterschiedliche Cache-Versionen fest.
NoStore bedeutet, dass der Inhalt des Caches nicht auf andere Speichergeräte als den Speicher geschrieben werden darf. Dies ist eine Anforderung für Inhalte mit relativ hoher Sicherheit.
SqlDependency bezieht sich auf die Datenbank.
2. Der Cache auf Anwendungsebene
kann nur im Code dahinter abgerufen werden und zeichnet sich dadurch aus, dass er jede benötigte Cache-Logik implementieren kann.
Kann über Page.Cache abgerufen werden. Der Klassenname lautet System.Web.Caching.Cache
3. Der Browser-Client-Cache
kann nur in CodeBehind abgerufen und über Response.Cache angegeben werden, bei dem es sich um ein HttpCachePolicy-Objekt handelt.
Zusätzlich: Sie können einen TimeSpan als Cache-Zeit angeben, ohne ihn jedes Mal in Sekunden umrechnen zu müssen.
public TimeSpan(long ticks);
public TimeSpan(int stunden, int minuten, int sekunden);
public TimeSpan(int tage, int stunden, int minuten, int sekunden)
;
, int Millisekunden);
Wenn Sie möchten, dass der Cache eine Stunde, eine Minute und eine Sekunde behält, können Sie direkt
new TimeSpan(1,1,1)
verwenden, anstatt zuerst
1 Stunde, 1 Minute und 1 Sekunde = 3600
zu berechnen+60+1=3661 Sekunden, und dann übertragen Geben Sie als Gültigkeitszeitraum 3661 ein.
http://www.cnblogs.com/ThomasNet/archive/2006/11/26/573104.html