[ASP.NET] Caching
ASPX 파일에서 처리................
===========================================================
FrmCachingWebUserControl.ascx
===========================================================
<%@ Control Language="C#" AutoEventWireup="true"
CodeBehind="FrmCachingWebUserControl.ascx.cs"
Inherits="DevCaching.FrmCachingWebUserControl" %>
<%@ OutputCache Duration="5" VaryByParam="None" %>
현재 시간(웹 폼 사용자 정의 컨트롤):
===========================================================
FrmCachingWebUserControl.ascx.cs
===========================================================
using System;
namespace DevCaching
{
public partial class FrmCachingWebUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
// 현재 시간 출력: 5초에 한번씩만 출력
lblTimeWebUserControl.Text = DateTime.Now.ToString();
}
}
}
===========================================================
CS 파일에서 처리................
===========================================================
FrmCachingResponseCache.aspx
===========================================================
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FrmCachingResponseCache.aspx.cs" Inherits="DevCaching.FrmCachingResponseCache" %>
코드 기반 캐싱
===========================================================
FrmCachingResponseCache.aspx.cs
===========================================================
using System;
using System.Web;
namespace DevCaching
{
public partial class FrmCachingResponseCache : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 코드 기반으로 캐싱 기능 적용하기
// 현재 날짜 출력
Response.Write(DateTime.Now.ToString());
// 캐싱 설정
Response.Cache.SetCacheability(HttpCacheability.Public);
// 캐싱 유효기간 설정
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
// 매개 변수 방식 지정
Response.Cache.VaryByParams["*"] = true;
}
}
}
===========================================================