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
DDDOriginal
2025-01-14 15:07:13817Durchsuche

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>

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!

Stellungnahme:
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