ASP.NET Webフォーム キャッシュ

ASP.NET Webフォーム キャッシュ

概è¦

一度ブラウザã§è¡¨ç¤ºã—ãŸã‚µã‚¤ãƒˆã‚’メモリã«ä¿æŒã—ã¦ãŠã事。
å†åº¦è¡¨ç¤ºã™ã‚‹éš›ã®ãƒ¬ã‚¹ãƒãƒ³ã‚¹ãŒè‰¯ããªã‚‹ã€‚
å•題点
åŒä¸€URLã§ã‚れã°ã€ã‚¯ã‚¨ãƒªæƒ…å ±ã€ç”»é¢ä¸Šã®ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ã®çŠ¶æ…‹ã®å¤‰æ›´ã«ã‚ˆã£ã¦ãƒ‘ラメーターãŒç•°ãªã£ã¦ã‚‚1ã¤ã®ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã¨ã—ã¦ä¿å­˜ã•れる。
よã£ã¦ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®å…¥åŠ›ãŒå¿…è¦ãªå‹•çš„ãªã‚µã‚¤ãƒˆã§ã¯ãƒ¬ã‚¹ãƒãƒ³ã‚¹ãŒè‰¯ããªã‚‰ãªã„。
ASP.NETã®æ”¹å–„点
・リクエストパラメーター
・ヘッダー情報
・ブラウザ種類
ç­‰ã«å¿œã˜ã¦ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’分ã‘る。
å‹•çš„ãªã‚µã‚¤ãƒˆã§ã‚‚レスãƒãƒ³ã‚¹ãŒè‰¯ã„。

ä¸Šè¨˜æ”¹å–„ã®æ‰‹æ³•ã¨ã—ã¦ã€ã©ã®ç¨®é¡žã®ãƒ‡ãƒ¼ã‚¿ã‚’ä¿æŒã™ã‚‹ã‹ï¼Ÿã«ã‚ˆã£ã¦
・出力キャッシュ(ページキャッシュ)
・フラグメントキャッシュ
・データキャッシュ
ã®ç¨®é¡žãŒã‚る。

出力キャッシュ(ページキャッシュ)

åŒä¸€URLã®ãƒšãƒ¼ã‚¸å…¨ä½“をキャッシュ。
一度表示ã—ãŸãƒšãƒ¼ã‚¸ã®ãƒ¬ã‚¹ãƒãƒ³ã‚¹ãŒè‰¯ããªã‚‹ã€‚

VaryByParamパラメーター

POSTデータ等ã®ã‚­ãƒ¼ã«ã‚ˆã£ã¦ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’分ã‘ã‚‹å ´åˆ
※~.aspx
<%@ Page
  Title="Home Page"
  Language="C#"
  AutoEventWireup="true"
  CodeBehind="Default.aspx.cs"
  Inherits="WebFormTest._Default" %>
<%@ OutputCache
  Duration="120"
  VaryByParam="*" %>

※~.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
  Response.Write(s: DateTime.Now.ToString());
}
⇒ページキャッシュã•れã¦ã„ã‚‹ã®ã§å‰å›žè¡¨ç¤ºæ™‚より120秒以内ã§ã‚れã°ã€
ç¾åœ¨æ™‚刻ã§ãªãå‰å›žè¡¨ç¤ºæ™‚ã®æ™‚刻ãŒè¡¨ç¤ºã•れãŸãƒšãƒ¼ã‚¸ãŒè¡¨ç¤ºã•れる。

※Durationパラメーター
ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’ä¿æŒã™ã‚‹æ™‚é–“(ç§’)

※VaryByParamパラメーターã®è¨­å®šå€¤
VaryByParam="id"
キーを複数指定ã™ã‚‹å ´åˆ
VaryByParam="list;id"
å…¨ã¦ã®ã‚­ãƒ¼ã‚’指定
VaryByParam="*"
キーã«ã‚ˆã‚‹æŒ¯ã‚Šåˆ†ã‘ãŒä¸è¦
VaryByParam="none"

VaryByHeaderパラメーター

HTTPヘッダー情報ã«ã‚ˆã£ã¦ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’分ã‘ã‚‹éš›ã«ä½¿ç”¨ã€‚
<%@ OutputCache
  VaryByParam="none"
  VaryByHeader="Accept-language"
  Duration="120" %>
※↑ 例ã¯ãƒ˜ãƒƒãƒ€ãƒ¼æƒ…å ±ã®ã€Œè¨€èªžã€ã«ã‚ˆã£ã¦ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’分ã‘る設定例。
(「ASP.NET 多言語対応ã€å‚ç…§)

フラグメントキャッシュ

ページ内ã®ä¸€éƒ¨åˆ†ã®ã¿ã‚’キャッシュ。
ASP.NETユーザーコントロールã§ã®è¨­å®šãŒå¿…è¦ã€‚

データキャッシュ

データベースやXMLç­‰ã€ãƒšãƒ¼ã‚¸ã‚’生æˆã™ã‚‹å…ƒãƒ‡ãƒ¼ã‚¿ã‚’キャッシュ。

Follow me!