ASP 캐시.NET 페이지의 일부
6099 단어 asp.net
이 기술은 귀중한 프로세서 시간을 들여 만든 페이지의 일부 부분 (예를 들어 데이터베이스 조회) 을 페이지의 다른 부분과 분리할 수 있도록 합니다.요청마다 서버 자원이 적은 페이지를 동적으로 생성할 수 있는 부분을 선택할 수 있습니다.
캐시할 페이지의 부분을 표시하고, 이 부분의 모든 부분을 봉인하는 사용자 컨트롤을 만들면, 사용자 컨트롤의 캐시 정책을 확인해야 합니다.코드 숨김 클래스에서 사용자 컨트롤을 만들 때 @ OutputCache 명령을 사용하여 정책을 선언하거나 PartialCachingAttribute 클래스를 사용하여 정책을 프로그래밍 방식으로 설정할 수 있습니다.
예를 들어 다음 명령을 사용자 컨트롤 파일의 맨 위에 포함하면, 이 컨트롤의 한 버전은 출력 캐시에 120초를 저장합니다.
<%@ OutputCache Duration="120" VaryByParam="None" %>
마찬가지로 코드 숨김 개발 방법으로 사용자 컨트롤을 개발하면 클래스 성명의 메타데이터에 다음 속성을 포함할 때 컨트롤 버전은 출력 캐시에 120초를 저장합니다.
[C#]
[PartialCaching(120)]
[Visual Basic]
<PartialCaching(120)>
이 기술 중 하나를 사용하면 사용자 컨트롤을 포함하는 페이지를 요청할 때 사용자 컨트롤만 캐시합니다.
페이지에서 출력 캐시에 지정된 사용자 컨트롤을 선언하고 사용한 경우 ASP.NET 페이지 분석기는 사용자 컨트롤을 만드는 방법에 따라 두 객체 유형 중 하나를 인스턴스화합니다.사용자 컨트롤을 성명으로 만들면
StaticPartialCachingControl 객체,하면, 만약, 만약...
LoadControl 메서드는 프로그래밍 방식으로 사용자 컨트롤을 만들고
PartialCachingControl 객체따라서 요청 페이지를 요청할 때 페이지가 캐시되지 않으면 분석기는 사용자 컨트롤러가 페이지의 컨트롤러 차원 구조에서 차지하는 논리적 위치에 대상을 넣는다.
페이지 출력에 설정할 수 있는 속성에 대한 자세한 내용은 @ OutputCache 명령에 대한 설명서를 참조하십시오.사용자 컨트롤을 개발하는 방법에 대한 더 많은 정보는 웹 창 사용자 컨트롤을 참고하십시오.
사용자 컨트롤을 페이지의 다른 서버 컨트롤에 끼워 넣을 수 있기 때문에 출력 캐시에 넣은 사용자 컨트롤도 끼워 넣을 수 있습니다.이것은 출력 캐시 명령을 출력 캐시 페이지의 사용자 컨트롤에 포함하거나 다른 출력 캐시 사용자 컨트롤의 일부분인 사용자 컨트롤에 포함시킬 수 있음을 의미한다.
세션 캐시를 사용할 때 자주 발생하는 오류
출력 캐시에 지정된 사용자 컨트롤 태그에 ID 속성을 선언하여 사용자 컨트롤의 인스턴스를 프로그래밍할 수 있습니다.단, 코드가 정상적으로 작동하도록 하기 위해서, 이 사용자 컨트롤이 출력 캐시에 존재하는지 현시적으로 검증해야 합니다.
예를 들어, 사용자 컨트롤에 ID
MyUserControl
를 선언으로 지정하면 를 사용할 수 있습니다.aspx 파일의 코드 설명 블록에 있는 다음 코드는 사용자 컨트롤이 존재하는지 확인합니다.[C#]
void Page_Load() {
if (MyUserControl != null)
// Place code manipulating MyUserControl here.
}
[Visual Basic]
Sub Page_Load()
If MyUserControl <> Null Then
' Place code manipulating MyUserControl here.
End If
End Sub
@ OutputCache 명령을 포함하는 사용자 컨트롤을 조작하기 위해 코드를 작성하면 오류가 발생합니다.출력 캐시가 실행된 사용자 컨트롤만 처음으로 동적으로 요청하기;지정한 시간이 만료되기 전에 출력 캐시에서 모든 다음 요청을 충족시킵니다.사용자 컨트롤이 실례화되었는지 확인하면 포함된 페이지에서 사용자 컨트롤을 프로그래밍 방식으로 조작할 수 있습니다.이 논리를 Page 와 같은 사용자 컨트롤과 연결된 페이지 생존 기간 이벤트에 포함할 수 있습니다.Load 이벤트 또는 PagePreRender 이벤트에서
출력 캐시 설정이 있는 사용자 컨트롤러가 출력 캐시 설정이 있는 웹 창에 존재할 때 발생하는 상황도 주의해야 한다.만약 페이지 출력 캐시 저장 지속 시간이 사용자 컨트롤 출력 캐시 저장 지속 시간보다 길다면, 페이지 출력 캐시 저장 지속 시간은 전체 페이지 (사용자 컨트롤 포함) 에 유효하다.예를 들어 페이지 출력 캐시가 100초로 설정되고 사용자 컨트롤 출력 캐시가 50초로 설정되면 전체 페이지는 출력 캐시에 100초를 저장하고 사용자 컨트롤의 비교적 짧은 시간 설정과 무관하다.다음 예는 이 점을 설명한다.
page01.aspx
[C#]
<%@ Page language="C#" %>
<%@ Register tagprefix="myControl" tagname="Time" src="uc01.ascx" %>
<%@ OutputCache duration="100" varybyparam="none" %>
<myControl:Time runat="server" /><br> <br> <br>
This page was most recently generated at:<p>
<% DateTime t = DateTime.Now;
Response.Write(t); %>
[Visual Basic]
<%@ Register tagprefix="myControl" tagname="Time" src="uc01.ascx" %>
<%@ OutputCache duration="100" varybyparam="none" %>
<myControl:Time runat="server" /><br> <br> <br>
This page was most recently generated at:<p>
<% Dim t As DateTime = DateTime.Now
Response.Write(t) %>
uc01.ascx
[C#]
<% @Control language="C#" %>
<% @OutputCache duration="100" varybyparam="none" %>
This user control was most recently generated at:<p>
<% DateTime t = DateTime.Now;
Response.Write(t); %>
[Visual Basic]
<% @OutputCache duration="100" varybyparam="none" %>
This user control was most recently generated at:<p>
<% Dim t As DateTime = DateTime.Now
Response.Write(t) %>
단, 페이지 출력 캐시 메모리 지속 시간이 사용자 컨트롤러보다 짧으면, 메모리 시간이 만료될 때까지 캐시 사용자 출력 컨트롤러를 사용합니다. 이 페이지의 나머지 부분이 요청에 의해 다시 생성되었음에도 불구하고.예를 들어 페이지 출력 캐시가 50초로 설정되고 사용자 컨트롤 출력 캐시가 100초로 설정되면 페이지의 나머지 부분은 두 번 만료될 때마다 사용자 컨트롤이 한 번 만료된다.아래의 이 간단한 예는 이 점을 설명하였다.
page02.aspx
[C#]
<%@ Page language="C#" %>
<%@ Register tagprefix="myControl" tagname="Time" src="uc02.ascx" %>
<%@ OutputCache duration="50" varybyparam="none" %>
<myControl:Time runat="server" /><br> <br> <br>
This page was most recently generated at:<p>
<% DateTime t = DateTime.Now;
Response.Write(t); %>
[Visual Basic]
<%@ Register tagprefix="myControl" tagname="Time" src="uc02.ascx" %>
<%@ OutputCache duration="50" varybyparam="none" %>
<myControl:Time runat="server" /><br> <br> <br>
This page was most recently generated at:<p>
<% Dim t As DateTime = DateTime.Now
Response.Write(t) %>
uc02.ascx
[C#]
<% @Control language="C#" %>
<% @OutputCache duration="100" varybyparam="none" %>
This user control was most recently generated at:<p>
<% DateTime t = DateTime.Now;
Response.Write(t); %>
[Visual Basic]
<% @OutputCache duration="100" varybyparam="none" %>
This user control was most recently generated at:<p>
<% Dim t As DateTime = DateTime.Now
Response.Write(t) %>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
작업 중 문제 해결 - (win 2003 asp. net) Session 과 페이지 전송 방법 으로 해결 방안 을 정상적으로 사용 할 수 없습니다.또한 F 는 처음에 우리 의 BP & IT 프로젝트 팀 이 Forms 폼 검증 을 사용 했다 고 판단 할 수 있 습 니 다. 페이지 를 뛰 어 넘 는 것 은http://hr.bingjun.cc/MyTask/MyTas...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.