2014년 7월 10일 목요일

[강좌#13] 출력 캐싱(Output Caching)[닷넷C#교육/ADO.NET강좌/ASP.NET교육잘하는곳/C#,ASP.NET교육추천/닷넷실무교육/.NET,C#/ADO.NET교육/닷넷학원/ASP.NET실무교육]

ASP.NET의 Caching에 관하여 
캐싱은 메모리에서 빈번히 액스 되는 데이터의 경우 그 효율을 증가 시키기 위해 HTTP 요청을 통해 페이지와 데이터를 유지하는데 사용되며 재생 비용 없이도 재사용 가능 하다. ASP.NET에서는 3종류의 캐싱이 사용 된다. 

출력캐싱(Putput Caching) : 요청(Request)에 의해 생성된 동적인 응답(Response)을 모두 캐싱 한다. 

부분 캐싱(Fragment Caching) : 요청(Request)에 의해 생성된 응답(Response)의 일부를 캐싱 한다. 

데이터 캐싱(Data Caching) : 프로그램적으로 임의의 객체를 캐싱 한다. 이를 지원하기  위해 ASP.NET은 요청을 통한 데이터를 쉽게 유지 하도록 프로그래머를 위한 캐시 엔진을 제공 한다. 

촐력 캐싱은 전체 페이지의 내용을 캐싱 할 때 유용 하다. 엑세스가 심한 사이트에서는 캐싱이 1분정도의 단위로 자주 일어 난다. 출력 캐싱에 위한 페이지 캐싱을 사용 하면 그 페이지에 대한 후속 요청은 그것을 수행하는 코드의 수행 없이 출력 페이지에 제공 된다. 

--------------------- 
출력 캐싱 
--------------------- 

SQL Server 2000의 pubs 데이터베이스의 Author 테이블에 SQLDataAdapter로 질의 하고 데이터 셋을 통해 페이지에 캐싱한 후 60초 마다 MyData Control에 다시 표시하면서 시간을 기록하게 하는 예제를 작성 해 보도록 하자. 

1. 프로젝트 이름을 OutputCaching 이라고 하여 C#, ASP.NET 웹 응용 프로젝트를 하나 생성 하자. 

2 .웹폼의 이름을 Webform1.aspx에서 OutputCaching.aspx 라고 이름을 변경 하자. 

3. 다음 소스코드를 HTML 영역에 붙여 넣기를 하자. 


<%@ OutputCache Duration="60" VaryByParam="gbn1" %> 
<%@ Import Namespace="System.Data" %> 
<%@ Import Namespace="System.Data.SqlClient" %> 
<HTML> 
        <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> 
        <body> 
                <h3> 
                        <font face="Verdana">출력캐싱 사용하기:</font> 
                </h3> 
                <b>수가구분별로 수가 보기:<%=Request["gbn1"]%></b> 
                <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="OutputCaching.aspx?gbn1=1">진찰료</a> 
                                </td> 
                                <td> 
                                        <a href="OutputCaching.aspx?gbn1=5">처치 수술료</a> 
                                </td> 
                                <td> 
                                        <a href="OutputCaching.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> 
        </body> 
</HTML> 

[실행결과] 
60초 동안에는 한번 가지고 온 데이터를 캐싱 한다. 화면 하단의 마지막 생성 일시를 확인 하면 된다.

오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급 
www.oraclejavacommunity.com


평일주간(9:30~18:10) 개강
(7/14)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
(7/14)[기업100%환급]SQL기초에서 Schema Object까지
(7/14)[기업100%환급]안드로이드개발자과정
(7/21)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 
(7/21)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(7/21)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(7/21)[채용예정교육]오라클자바개발잘하는신입뽑기프로젝트,교육전취업확정

평일야간(19:00~21:50) 개강
(7/09)닷넷(C#,Network,ADO.NET,ASP.NET)마스터과정
(7/15)SQL기초에서실무까지
(7/15)안드로이드개발자과정
(7/16)Spring3.X, MyBatis, Hibernate실무과정
(7/21)웹퍼블리싱 마스터
(7/22)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(8/05)MyBatis3.X, Hibernate4.X ORM실무과정

주말(10:00~17:50) 개강
(7/12)SQL초보에서 Schema Object까지
(7/12)개발자를위한PLSQL,SQL튜닝,힌트
(7/13)C#,ASP.NET마스터
(7/19)JAVA,Network&WEB&Framework(자바기초에서웹스프링까지)
(7/19)Spring3.X, MyBatis, Hibernate실무과정
(7/19)웹퍼블리싱 마스터
(7/19)안드로이드개발자과정
(8/02)MyBatis3.X, Hibernate4.X ORM실무과정
(8/09)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지

주말저녁(18:30~22:20) 개강
(8/02)JAVA,Network&WEB&Framework
(8/09)SQL기초에서실무까지

댓글 없음:

댓글 쓰기