управление кэшированием в ASP.NET MVC Actions
]ASP.net Механизм кэширования MVC значительно повышает производительность. Однако существуют сценарии, когда отключение кэширования для конкретных действий жизненно важно, чтобы гарантировать поиск свежих данных. Это руководство подробно описывает методы, чтобы предотвратить кэширование в конкретных действиях ASP.NET MVC с использованием пользовательских атрибутов.
Чтобы создать пользовательский атрибут, который отключает кэширование, мы используем [attributusage]
и [ActionFilterAttribute] атрибуты. Ниже приведен пример:
]
[attributusage (attributeTargets.class | attributeTargets.method)]
публичный герметичный класс 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);
}
}
[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);
}
}
к контроллеру или методу действия отключает кэширование для этого конкретного элемента. В качестве альтернативы, наследуя от базового контроллера и украшение его [nocache] предотвращает кэширование всех наследственных контроллеров.
]
jQuery's Cache Control
] при использовании jQuery для поиска данных, явно настройка cache: false
внутри $.
$. Ajax ({
кэш: ложь,
// ... другие настройки AJAX
});
$.ajax({
cache: false,
// ... other AJAX settings
});
после реализации мер по борьбе с кэшированием, «твердое обновление» (Ctrl F5) имеет решающее значение, чтобы гарантировать, что браузер не полагается на кэшированные данные. Стандартное обновление (F5) не всегда может получить последнюю информацию, если браузер сохранит кэшированную версию. ] Краткое содержание
Использование
nocacheatTribute или настройка cache: false
в jQuery эффективно предотвращает кэширование для целевых действий ASP.NET MVC, гарантируя, что браузер получает текущие данные. Управление магистерством кэширования является ключом к избежанию устаревших данных, влияющих на пользовательский опыт и логику приложений.]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3