asp.net-mvc의 캐싱
asp.net-mvc 사이트에서 가장 데이터베이스가 많은 작업을 캐시하고 싶습니다. 내 연구에서 나는
그러나 나는 그것을 아직 얻지 못했다.
여러 구문에 따라 POST 요청을 캐시 할 수 있기를 원합니다. 이러한 구문은 개체에 있습니다. 따라서 다음 요청의 결과를 캐시하고 싶습니다.
public ActionResult AdvancedSearch(SearchBag searchBag)
여기서 searchBag는 선택적 검색 매개 변수를 보유하는 객체입니다. 내 뷰 자체는 가볍지 만 검색 백에 채워지는 필드에 따라 데이터 액세스에 시간이 많이 걸릴 수 있습니다.
내 행동보다는 데이터 레이어에 캐싱해야한다는 느낌이 듭니다.
OutputCache 속성에서 VaryByParam을 어떻게 사용해야합니까?
모델이나 데이터 레이어에도 캐시하는 것을 좋아합니다. 이것은 컨트롤러 / 프레젠테이션에서 데이터를 검색하는 것과 관련된 모든 것을 분리합니다. System.Web.HttpContext.Current.Cache
엔터프라이즈 라이브러리에서 캐싱 애플리케이션 블록을 사용하거나 ASP.NET 캐시에 액세스 할 수 있습니다 . 쿼리에 대한 매개 변수에서 캐시 된 데이터에 대한 키를 만듭니다. 데이터를 업데이트 할 때 캐시를 무효화해야합니다.
또는 HttpContext.Current와 독립적이고 HttpRuntime.Cache에서 캐시에 액세스 할 수 있습니다. :)
종종 OutputCaching은 가장 빠르고 효율적일 수 있지만 요구 사항을 충족 할 때만 가능합니다. 틀렸다면 빠르고 효율적으로 사용할 필요가 없습니다! ;)
이 경우 복잡한 캐싱이 필요하기 때문에 데이터 레이어에서 캐싱하는 것이 올바른 것 같습니다. 캐시되는 출력을 제어하는 매개 변수 세트가 간단한 경우 두 가지를 결합 할 수 있습니다.
다음과 같은 출력 캐싱을 사용할 수 있습니다.
[OutputCache(Duration = 10, VaryByParam = "empID")]
public ActionResult GetEmployeeDetail(int empID)
{
Employee e = new Employee();
return Content(e.getEmployeeDetails(empID));
}
또는 웹 구성에서 설정 한 캐시 프로필을 사용할 수 있습니다.
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="Admin"
duration="86420" varyByParam="none"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
and use this tag
[OutputCache(CacheProfile="Admin")]
참고 URL : https://stackoverflow.com/questions/385986/caching-in-asp-net-mvc
'Programing' 카테고리의 다른 글
자바의 웹캠에서 이미지 캡처? (0) | 2020.09.25 |
---|---|
CSS를 사용하여 글꼴 .ttf를 포함하는 방법은 무엇입니까? (0) | 2020.09.24 |
목록에서 id 삭제 (0) | 2020.09.24 |
주어진 시간, 위도 및 경도가 지정된 태양의 위치 (0) | 2020.09.24 |
별칭 함수를 입력하고 캐스팅하지 않고 사용할 수있는 이유는 무엇입니까? (0) | 2020.09.24 |