Steuern des Cachings in ASP.NET MVC-Aktionen
Der Caching-Mechanismus von ASP.NET MVC steigert die Leistung erheblich. Es gibt jedoch Szenarien, in denen die Deaktivierung des Cachings für bestimmte Aktionen unerlässlich ist, um den Abruf neuer Daten zu gewährleisten. In diesem Handbuch werden Methoden zum Verhindern der Zwischenspeicherung in bestimmten ASP.NET MVC-Aktionen mithilfe benutzerdefinierter Attribute beschrieben.
Erstellen eines NoCache-Attributs
Um ein benutzerdefiniertes Attribut zu erstellen, das das Caching deaktiviert, nutzen wir die Attribute [AttributeUsage]
und [ActionFilterAttribute]
. Unten ist ein Beispiel:
<code class="language-csharp">[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] public sealed class NoCacheAttribute : ActionFilterAttribute { public override void OnResultExecuting(ResultExecutingContext filterContext) { filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)); filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false); filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches); filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache); filterContext.HttpContext.Response.Cache.SetNoStore(); base.OnResultExecuting(filterContext); } }</code>
Durch Anwenden von [NoCache]
auf einen Controller oder eine Aktionsmethode wird das Caching für dieses bestimmte Element deaktiviert. Alternativ verhindert das Erben von einem Basiscontroller und das Verzieren mit [NoCache]
das Caching über alle erbenden Controller hinweg.
Cache-Steuerung von jQuery
Wenn Sie jQuery zum Datenabruf verwenden, verhindert das explizite Setzen von cache: false
innerhalb der $.ajax()
-Methode das Caching:
<code class="language-javascript">$.ajax({ cache: false, // ... other AJAX settings });</code>
Browseraktualisierung erzwingen
Nach der Implementierung von Anti-Caching-Maßnahmen ist eine „harte Aktualisierung“ (Strg F5) von entscheidender Bedeutung, um sicherzustellen, dass der Browser nicht auf zwischengespeicherte Daten angewiesen ist. Eine Standardaktualisierung (F5) ruft möglicherweise nicht immer die neuesten Informationen ab, wenn der Browser die zwischengespeicherte Version behält.
Zusammenfassung
Die Verwendung von NoCacheAttribute
oder die Einstellung cache: false
in jQuery verhindert effektiv das Caching für gezielte ASP.NET MVC-Aktionen und stellt sicher, dass der Browser aktuelle Daten empfängt. Die Beherrschung der Caching-Kontrolle ist der Schlüssel zur Vermeidung veralteter Daten, die sich negativ auf das Benutzererlebnis und die Anwendungslogik auswirken.
Das obige ist der detaillierte Inhalt vonWie verhindere ich das Caching für bestimmte ASP.NET MVC-Aktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!