Heim > Backend-Entwicklung > C++ > Wie verhindere ich das Caching für bestimmte ASP.NET MVC-Aktionen?

Wie verhindere ich das Caching für bestimmte ASP.NET MVC-Aktionen?

DDD
Freigeben: 2025-01-14 15:07:13
Original
815 Leute haben es durchsucht

How Do I Prevent Caching for Specific ASP.NET MVC Actions?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage