Contrôle de la mise en cache dans ASP.net MVC Actions
Le mécanisme de mise en cache de ASP.NET MVC augmente considérablement les performances. Cependant, des scénarios existent lorsque la désactivation de la mise en cache pour des actions particulières est essentielle pour garantir la récupération de nouvelles données. Ce guide détaille les méthodes pour empêcher la mise en cache dans des actions MVC ASP.NET spécifiques à l'aide d'attributs personnalisés.
Création d'un attribut nocache
Pour créer un attribut personnalisé qui désactive la mise en cache, nous levons le [attributUsage]
et [actionFilterAttribute]
Attributs. Voici un exemple:
[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);
}
}
Appliquer [Nocache]
à un contrôleur ou une méthode d'action désactive la mise en cache pour cet élément spécifique. Alternativement, hériter d'un contrôleur de base et le décorer avec [nocache]
empêche la mise en cache sur tous les contrôleurs hérités.
jQuery's Cache Control
Lors de l'utilisation de jQuery pour la récupération de données, définit explicitement cache: false
dans le $. Ajax ()
méthode empêche le caching:
$.ajax({
cache: false,
// ... other AJAX settings
});
Application de rafraîchissement du navigateur
Après la mise en œuvre de mesures anti-caches, un "rafraîchissement dur" (CTRL F5) est crucial pour s'assurer que le navigateur ne s'appuie pas sur des données mises en cache. Un rafraîchissement standard (F5) peut ne pas toujours récupérer les dernières informations si le navigateur conserve la version mise en cache.
Résumé
Utilisation du nocacheAttribute
ou définit cache: false
Dans jQuery empêche efficacement la mise en cache pour les actions MVC ASP.NET ciblées, garantissant que le navigateur reçoit des données actuelles. La maîtrise du contrôle de mise en cache est la clé pour éviter les données périmées ayant un impact sur l'expérience utilisateur et la logique d'application.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3