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ç‰ã€ãƒšãƒ¼ã‚¸ã‚’生æˆã™ã‚‹å…ƒãƒ‡ãƒ¼ã‚¿ã‚’ã‚ャッシュ。