Output Cache 웹 폼 / 웹 사용자 정의 컨트롤의 상태값을 매번 요청하지 않고 메모리에 저장 후 동일한 요청이 들어오면 바로 처리 새로고침 할 때마다 connection, command, databinding 을 계속 하면 속도 오래 걸림 속도가 가장 늦는 명령이 connection Caching기능을 적용시켜 두면 페이지 레벨로 속도 향상 시 가장 좋음 한 번 읽어두고 지정된 시간안에는 변경되지 않음 OutputCache 지시문 (권장사항. 고정적으로 선언해 두고 사용) <%@ OutputCache Duration="60" VaryByParam="None" %> 60초 동안에는 새로 고침해도 다시 읽어오지 않음 output 개체에 담아 두고 바로 출력 protected void Page_Load(object sender, EventArgs e) { // 로드할 때마다 시간 출력 // DB연결해서 데이터를 1000건 가져온다고 가정 this.lblTime.Text = DateTime.Now.ToLongTimeString(); } |
페이지 단위 적용 <%@ OutputCache Duration="초단위" VaryByParam="None" %> 사이트에 공지사항인 경우 메인페이지에 출력할 때 매번 Connection하지 않고 시간 정해두고 바로 출력되게 할 수 있음 바로바로 적용하고 싶을 때는 Outputcache 사용 안하는게 좋음 블로그 경우 카테고리는 변경이 잘 안되기 때문에 outputcache 기능 사용해서 속도 향샹 똑같은 기능을 C# 코드 기반으로 (동적으로 변경할 경우) protected void Page_Load(object sender, EventArgs e) { // 코드 기반으로 캐싱 기능 적용하기 Response.Write(DateTime.Now.ToLongTimeString()); // 현재 날짜 출력 // 캐싱 설정 Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); // 매개 변수 방식 지정 Response.Cache.VaryByParams["*"] = true; // 코드 기반으로 캐싱 기능 적용하기 Response.Write(DateTime.Now.ToLongTimeString()); // 현재 날짜 출력 } |
'.Net Project > ASP.NET 3.5 Sp1' 카테고리의 다른 글
55장 WebConfigurationManager (0) | 2009.10.27 |
---|---|
54장 Remote Debugging (0) | 2009.10.27 |
52장 상태관리 클라이언트측_(ViewState, Cookies, QueryString) (0) | 2009.10.27 |
51장 상태관리 서버측_(Application, Session, Cache) (0) | 2009.10.27 |
50장 상태관리(httpContext) (0) | 2009.10.27 |