우리는 ASP.Net MVC3 기반 웹 응용 프로그램을 보유하고 있습니다. 우리는 데이터베이스에있는 전형적인 마스터 데이터 테이블을 가지고 있습니다 - 우리는 SQL 데이터베이스에서 드롭 다운 및 자동 완성을 채우는 동안 이러한 테이블 데이터 (및 일부 뷰)를 조회해야합니다. 따라서 사용자가 페이지를 새로 고치더라도 DB에서 변경되지 않은 (거의) 마스터 데이터를 가져옵니다. 마스터 데이터의 대부분은 < 100 레코드입니다. 내가 "응용 프로그램 수준 변수"로세션 또는 데이터베이스의 MVC 웹 응용 프로그램 드롭 다운 데이터
목록 < 마스터 데이터 오브젝트 >를 넣어 경우
는 (또는 이어야 "세션 수준")
않도록하는 것이 좋습니다 있을까 이 왕복? 모든 마스터 데이터를 처리하는 것은 어떨까요? 나는 "요구에 따라"앱 레벨 변수를 채우는 것이 초기 페이로드를 덜 공격적으로 만들 수 있다고 믿는다. 특정 시나리오에서 데이터를 새로 고치려면 무효화/재 게시 할 수 있습니다.
이 문제를 해결하기위한 생각이나 다른 방법을 제안하십시오. 그리고 마지막으로,이 최적화가 실제로 가치가있는가요? (즉, 데이터베이스 액세스가 앱 수준 액세스와 비교할 때 큰 문제가 아니라면 보통 사용자 액세스이며 db 크기는 10-15MB와 비슷합니다). 우리는 물건을 간단하게 유지하기 위해 노력한다. & 깨끗하다.
감사 코딩. 검색 데이터에 대한 컨트롤러 및 작업을 수행하므로 캐싱을 활성화 할 수 있지만 동일한 작업은 검색 용어 (예 : Lookup (source, searchTerm))와 같은 결과를 가져 오는 자동 완성 플러그인에서 사용됩니다. 나는 캐싱이 Lookup (소스)에서 훌륭하게 작동 할 수 있다고 믿지만, searchTerm은 어떨까요 - 인수를 기반으로 캐시 할 것인가? 어떻게 제어 할 수 있습니까? –
비슷한 것 - http://stackoverflow.com/questions/6339191/can-you-use-output-caching-in-asp-net-mvc-based-on-the-parameters-of-your-contro. 마지막으로 한 가지 - 나는 그것이 사용자 특유의 것이라고 생각하지 않는다. –
안녕하세요, Hemant, 매개 변수를 기반으로 다시 작성하려면 캐시를 설정하는 방법이 있지만 그 옵션을 사용하지 않았습니다. DoodNet 프레임 워크 기반의 캐싱에 대한 자세한 내용은 http://msdn.microsoft.com/en-us/library/dd997357.aspx를 참조하십시오. –