2014년 11월 18일 화요일

[강좌#10] 페이지 부분 캐싱(Page Fragment Caching)[닷넷C#교육/ADO.NET강좌/ASP.NET교육잘하는곳/C#,ASP.NET교육추천/닷넷실무교육/.NET,C#/ADO.NET교육/닷넷학원/ASP.NET실무교육]

ASP.NET의 페이지 부분 캐싱(Page Fragment Caching) 
이전의 출력 캐싱(Output Caching)과 다른 점은 페이지의 일부를 사용자 정의 컨트롤로 만들어 사용자 컨트롤을 캐싱 하는 것이다. 페이지 캐싱은 전체 페이지를 캐싱하므로 비 실용적일 때도 있다. ASP.NET에서는 부분 캐싱이라고 불리는 페이지 컨텐트의 캐싱 영역을 분리하여 출력하는 간단한 방법을 제공 한다. 

1.        VS.NET 새 프로젝트를 생성 한다. FragmentCaching 이라고 이름을 주자. 
2.        FragmentCaching.aspx 파일을 만들어 아래의 코드를 붙여 넣자. 


<%@ Register TagPrefix="ucssj" TagName="DataControl" Src="datactrl.ascx" %> 
<HTML> 
        <script language="C#" runat="server"> 

      void Page_Load(Object Src, EventArgs E ) { 

          TimeMsg.Text = DateTime.Now.ToString("G"); 
      } 

        </script> 
        <body> 
                <h3> 
                        <font face="Verdana">페이지 부분 캐싱</font> 
                </h3> 
                <ucssj:DataControl runat="server" ID="Datacontrol1" NAME="Datacontrol1" /> 
                
                <i>페이지 마지막 생성일시:</i> 
                <asp:label id="TimeMsg" runat="server" /> 
        </body> 
</HTML> 

3.        프로젝트에서 마우스 오른쪽 버튼을 눌러 [추가]  [웹 사용자 정의 컨트롤] 을 선택하여 사용자 정의 컨트롤 파일 datactrl.ascx 파일을 추가 하자. 그 내용은 다음과 같다. 

<%@ OutputCache Duration="60" VaryByParam="gbn1" %> 
<%@ Import Namespace="System.Data" %> 
<%@ Import Namespace="System.Data.SqlClient" %> 
<script language="C#" runat="server"> 

    void Page_Load(Object Src, EventArgs E ) { 

        String selectCmd; 
        String gbn1 = Request["gbn1"]; 

                //수가구분에 따라 병원 수가 테이블에서 데이터 추출 
        if( gbn1 == null ) { 
            selectCmd = "select sname1, sbun, sjum, skum from HSuga"; 
        } 
        else { 
            selectCmd = "select sname1, sbun, sjum, skum from HSuga where gbn1 = " + gbn1 ; 
        } 

        SqlConnection myConnection = new SqlConnection( 
              "data source=localhost; initial catalog=DentalDB;" + 
              "persist security info=True;user id=sa;password=osstem"); 
        SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd, myConnection); 

        DataSet ds = new DataSet(); 
        myCommand.Fill(ds, "HSuga"); 

        MyDataGrid.DataSource=new DataView(ds.Tables[0]); 
        MyDataGrid.DataBind(); 

        
        TimeMsg.Text = DateTime.Now.ToString("G"); 
    } 

</script> 

<table cellspacing="0" cellpadding="3" rules="all" style="BORDER-LEFT-COLOR:black;BORDER-BOTTOM-COLOR:black;WIDTH:700px;BORDER-TOP-COLOR:black;BORDER-COLLAPSE:collapse;BACKGROUND-COLOR:#aaaadd;BORDER-RIGHT-COLOR:black"> 
        <tr> 
                <td> 
                        <a href="FragmentCaching.aspx?gbn1=1">진찰료</a> 
                </td> 
                <td> 
                        <a href="FragmentCaching.aspx?gbn1=5">처치 수술료</a> 
                </td> 
                <td> 
                        <a href="FragmentCaching.aspx?gbn1=8">검사료</a> 
                </td> 
        </tr> 
</table> 
<p> 
        <ASP:DataGrid id="MyDataGrid" runat="server" Width="700px" BackColor="#CCCCFF" BorderColor="Black" 
                CellPadding="3" Font-Name="Verdana" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd" Height="153px" 
                Font-Names="Verdana" PageSize="5"> 
                <HeaderStyle BackColor="#AAAADD"></HeaderStyle> 
        </ASP:DataGrid> 
<p><i>컨트롤 내에서 마지막 생성 일시:</i> 
        <asp:label id="TimeMsg" runat="server" /></p> 

[실행 결과] 
내부의 사용자 정의 컨트롤로 만든 부분은 리로드 할 때 마다 시간이 바뀌지 않는다. 60초동안 캐시 되기 때문 이다. 
  

 [100%환급,개발자전문]빅데이터/SQL/자바/스프링/안드로이드/닷…오라클자바…12-272520
 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육…오라클자바…12-111849
53 [평일100%환급7건]Spring,자바&JSP,안드로이드,웹퍼블리싱,C#닷… 오라클자바…03-151657
52 [주말]C#,ASP.NET마스터 오라클자바…01-311746
51 [기업100%환급,평일주간]SQL기초에서스키마오브젝트,PLSQL,힌트… 오라클자바…01-312516
50 [평일주간야간,주말]C기본&자료구조,알고리즘 오라클자바…01-311391
49 [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정-… 오라클자바…01-191691
48 [평일야간,주말]안드로이드개발자과정(Android기초실무) 오라클자바…01-111579
47 [평일야간,주말주간야간]JAVA,Network&JSP&Spring,MyBatis,Hiber… 오라클자바…01-032094
46 [100%환급,개발자전문]빅데이터/SQL/자바/스프링/안드로이드/닷… 오라클자바…12-272520
45 [평일주간]NoSQL,MongoDB,빅데이터기초과정 오라클자바…12-191808
44 [평일주간야간, 주말]웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX… 오라클자바…12-141791
43 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육… 오라클자바…12-111849
42 [평일주간]빅데이터하둡기초과정(BigData Hadoop) 오라클자바…12-091451
41 [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011674
40 [기업100%환급]오라클&자바웹스프링신입과정3주(SQL,JAVA,JSP,Se… 오라클자바…12-011849
39 [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) 오라클자바…12-011320

댓글 없음:

댓글 쓰기