블로그 이미지
Magic_kit
study 관련자료를 한곳으로 자기 개발 목적으로 재태크 재무 관리 목적으로 일상생활의 팁을 공유 하기 위하여 블로그를 개설 하였습니다.

calendar

1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

Category

Recent Post

Recent Comment

Archive

2009. 10. 27. 02:40 .Net Project/ASP.NET 3.5 Sp1
반응형
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()); // 현재 날짜 출력

} 






반응형
posted by Magic_kit