방법: 캐시 키 종속성을 사용하여 페이지 출력 캐시
업데이트: 2007년 11월
캐시의 다른 항목이 제거될 경우 출력 캐시에서 페이지를 제거할 수도 있습니다. 프로세스를 많이 사용하고 응용 프로그램 캐시에 추가되어 여러 페이지에 사용되는 보고서를 표시하는 페이지를 예로 들 수 있습니다. 보고서가 변경되거나 캐시에서 제거되면 이 보고서가 더 이상 유효하지 않으므로 캐시에서 페이지 출력도 제거할 수 있습니다. 이렇게 하려면 캐시된 다른 항목에 종속되는 페이지 출력을 캐시할 수 있습니다.
참고: |
---|
RemoveOutputCacheItem 메서드를 호출하여 페이지를 출력 캐시에서 명시적으로 제거할 수 있습니다. 이 작업은 응용 프로그램의 필요에 따라 Global.asax 파일, 사용자 지정 ASP.NET 서버 컨트롤 또는 페이지에서 수행할 수 있습니다. |
다른 캐시 항목에 종속되는 페이지 출력을 캐시하려면
페이지에서 선언적으로 또는 프로그래밍 방식으로 캐시 설정을 지정합니다. 자세한 내용은 방법: ASP.NET 페이지 캐싱에 대한 만료 값 설정, 페이지의 캐시 가능성 설정 및 여러 버전의 페이지 캐싱을 참조하십시오.
페이지 코드에서 AddCacheItemDependency 메서드를 호출합니다. 그런 다음 종속성을 만들 캐시 항목의 이름을 cacheKey 매개 변수로 전달합니다.
다음 코드 예제에서는 ProcessIntensiveReport라는 항목에 종속성을 설정하는 방법을 보여 줍니다. 이 항목이 수정되거나 제거되면 페이지 출력이 캐시에서 제거됩니다.
protected void Page_Load(object sender, EventArgs e) { Response.AddCacheItemDependency("ProcessIntensiveReport"); // Set additional properties to enable caching. Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.SetValidUntilExpires(true); }
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Response.AddCacheItemDependency("ProcessIntensiveReport") ' Set additional properties to enable caching. Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)) Response.Cache.SetCacheability(HttpCacheability.Public) Response.Cache.SetValidUntilExpires(True) End Sub
참고: ASP.NET 사용자 정의 컨트롤에서는 AddCacheItemDependency 메서드를 호출할 수 없습니다. 그러나 @ OutputCache 지시문을 지정하는 사용자 정의 컨트롤에서는 캐시 키 종속성을 설명하는 CacheDependency 개체를 만든 다음 UserControl 개체의 Dependency 속성에 할당할 수 있습니다.