Maison >développement back-end >C++ >Comment puis-je empêcher la mise en cache d'actions ASP.NET MVC spécifiques ?
Contrôle de la mise en cache dans les actions ASP.NET MVC
Le mécanisme de mise en cache d'ASP.NET MVC améliore considérablement les performances. Cependant, il existe des scénarios dans lesquels la désactivation de la mise en cache pour des actions particulières est vitale pour garantir la récupération de nouvelles données. Ce guide détaille les méthodes permettant d'empêcher la mise en cache dans des actions ASP.NET MVC 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 exploitons les attributs [AttributeUsage]
et [ActionFilterAttribute]
. Ci-dessous un exemple :
<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>
L'application de [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éritants.
Contrôle du cache de jQuery
Lors de l'utilisation de jQuery pour la récupération de données, la définition explicite de cache: false
dans la méthode $.ajax()
empêche la mise en cache :
<code class="language-javascript">$.ajax({ cache: false, // ... other AJAX settings });</code>
Application de l'actualisation du navigateur
Après avoir mis en œuvre des mesures anti-caching, un "hard rafraîchissement" (Ctrl F5) est crucial pour garantir que le navigateur ne s'appuie pas sur les données mises en cache. Une actualisation standard (F5) peut ne pas toujours récupérer les dernières informations si le navigateur conserve la version en cache.
Résumé
L'utilisation du NoCacheAttribute
ou du paramètre cache: false
dans jQuery empêche efficacement la mise en cache des actions ASP.NET MVC ciblées, garantissant ainsi que le navigateur reçoit les données actuelles. La maîtrise du contrôle de la mise en cache est essentielle pour éviter que les données obsolètes n'aient un impact sur l'expérience utilisateur et la logique des applications.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!