Asp.net은 세 가지 유형의 캐시를 지원합니다.
빠른 기술 개요를 작성하고 싶지만 너무 많을 수 있습니다. 기술 개요의 목적은 기술적인 요점을 가장 빠르고 간단하게 설명하는 것입니다. 이는 제가 바라는 지식을 전파하는 가장 효율적인 방법이기도 합니다.
1. 페이지/컨트롤 캐시
2. 애플리케이션 레벨 캐시
3. 브라우저 클라이언트 캐시
구현 측면에서 볼 때 페이지/컨트롤 캐시와 애플리케이션 수준 캐시는 서버 메모리에 저장되므로 메모리가 부족해지기 전에 이러한 콘텐츠가 무효화되기 전에 미리 삭제될 수 있습니다. (캐시 특성상 이러한 내용은 안심하고 삭제할 수 있습니다.) 브라우저 클라이언트의 캐시는 클라이언트 브라우저의 캐시에 저장됩니다. 예를 들어 IE의 임시 폴더는 캐시 역할을 합니다. 사용자가 페이지를 요청할 때마다 브라우저는 먼저 캐시를 검색하여 요구 사항을 충족하고 만료되지 않은 캐시 콘텐츠가 있는지 확인합니다. 그렇다면 캐시에서 직접 읽고 네트워크 전송을 건너뜁니다.
다음은 Asp.net의 구체적인 작성 방법을 보여줍니다.
1. 페이지/컨트롤 캐시는 aspx, ascx 파일에서 선언하거나 코드 숨김에서 선언할 수 있습니다.
<%@ OutputCache Duration="#ofseconds"
Location="모든 | 클라이언트 | 다운스트림 | 서버 | 없음 |
ServerAndClient "
Shared="True | False"
VaryByControl="controlname"
VaryByCustom="browser | customstring"
VaryByHeader="헤더"
VaryByParam ="parametername"
CacheProfile="캐시 프로필 이름 | ''"
NoStore="true | false"
SqlDependency="데이터베이스/테이블 이름 쌍 | CommandNotification"
%>
주요 매개 변수는 다음과 같습니다.
기간: 캐시 유효 시간, 단위 초
공유: It 컨트롤에만 유효합니다. 컨트롤을 동시에 여러 페이지에 적용할 수 있는 경우 각 페이지가 이 컨트롤에 대해 자체 캐시를 유지하지 않고도 여러 페이지가 이 캐시를 공유할 수 있습니까?
VaryByControl: 캐시는 컨트롤의 ID에 따라 변경됩니다.
VaryByCustom: 캐시는 사용자 정의 변수에 따라 변경됩니다. 변수는 여기에서 지정되며 Global.ascx에서 구현되어야 합니다.
public override string GetVaryByCustomString(
HttpContext context,
string custom
)
this 명령문 사용자 정의 매개변수는 OutPutcache에 선언된 변수입니다. 이 함수의 다양한 사용자 정의 매개변수에 대해 다양한 문자열 값을 반환하여 다양한 캐시 콘텐츠를 표현합니다.
VaryByHeader, VaryByParam 및 CacheProfile도 서로 다른 캐시 버전을 설정합니다.
NoStore는 캐시의 내용이 메모리 이외의 저장 장치에 기록될 수 없음을 의미합니다. 이는 상대적으로 보안이 높은 콘텐츠에 대한 요구 사항입니다.
SqlDependency는 데이터베이스와 관련되어 있습니다.
2. 애플리케이션 레벨 캐시는
코드 비하인드에서만 얻을 수 있으며, 필요한 모든 캐시 로직을 구현할 수 있다는 것이 특징입니다.
Page.Cache를 통해 얻을 수 있으며 클래스 이름은 System.Web.Caching.Cache입니다.
3. 브라우저 클라이언트 캐시는
코드 숨김에서만 얻을 수 있으며 HttpCachePolicy 개체인 Response.Cache를 통해 지정할 수 있습니다.
추가: 매번 초로 변환하지 않고 TimeSpan을 캐시 시간으로 지정할 수 있습니다.
public TimeSpan(긴 틱);
public TimeSpan(int 시간, int 시간, int 분, int 초);
public
TimeSpan(int 일, int 시간, int 분, int 초) , int 밀리초);
캐시가 1시간 1분 1초를 유지하도록 하려면
먼저1시간 1분 1초 = 3600을
계산하는 대신
new TimeSpan(1,1,1)을
직접 사용할 수 있습니다.+60+1=3661초 후 전송 유효기간을 3661로 입력하세요.
http://www.cnblogs.com/ThomasNet/archive/2006/11/26/573104.html