"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > ASP.NET MVC 작업의 캐싱을 방지하는 방법은 무엇입니까?

ASP.NET MVC 작업의 캐싱을 방지하는 방법은 무엇입니까?

2025-04-11에 게시되었습니다
검색:792

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

asp.net mvc 동작에서 캐싱 제어

ASP.NET MVC의 캐싱 메커니즘은 성능을 크게 향상시킵니다. 그러나 특정 동작에 대한 캐싱을 비활성화하는 것이 신선한 데이터의 검색을 보장하기 위해 필수적인 시나리오가 존재합니다. 이 안내서는 사용자 정의 속성을 사용하여 특정 ASP.NET MVC 작업의 캐싱을 방지하는 방법을 자세히 설명합니다.

nocache 속성 만들기

캐싱을 비활성화하는 사용자 정의 속성을 작성하려면 [AttributeUsage] [ActionFilterAttribute] 속성을 활용합니다. 아래는 예입니다.

[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] 를 적용하면 해당 특정 요소의 캐싱이 비활성화됩니다. 또는 기본 컨트롤러에서 상속하고 [Nocache] 로 장식하면 모든 상속 컨트롤러가 캐싱을 방지합니다.

jQuery의 캐시 제어

데이터 검색에 jQuery를 사용할 때 cache : false $.

$. Ajax ({{ 캐시 : false, // ... 다른 Ajax 설정 });
$.ajax({
    cache: false,
    // ... other AJAX settings
});
브라우저 새로 고침

방지 방지 측정을 구현 한 후 브라우저가 캐시 된 데이터에 의존하지 않도록 "하드 리프레쉬"(CTRL F5)가 중요합니다. 브라우저가 캐시 된 버전을 유지하는 경우 표준 새로 고침 (F5)이 항상 최신 정보를 검색하는 것은 아닙니다.

요약

noccheattribute

또는 설정 캐시를 사용하여 jQuery의 false 는 대상 ASP.NET MVC 작업에 대한 캐싱을 효과적으로 방지하여 브라우저가 현재 데이터를 수신하는 것을 보장합니다. 캐싱 제어 마스터 링 사용자 경험 및 응용 프로그램 논리에 영향을 미치는 오래된 데이터를 피하는 데 핵심이 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3