CFCACHE  
説明

ページのコピーをサーバーコンピュータまたはクライアントコンピュータに保管して、ページレンダリングのパフォーマンスを向上させます。これを行うために、このタグでは、ColdFusion ページにより返されたスタティック HTML が含まれるテンポラリファイルが作成されます。

このタグは、ユーザーがページにアクセスするたびにダイナミックコンテンツを取り込む必要がない場合に使用します。

単純な URL や、URL パラメータを含む URL に対して、このタグを使用できます。

 
カテゴリ

ページ処理タグ

 
シンタックス
<cfcache
   action = "action"
   directory = "directory_name"
   timespan = "value"
   expireURL = "wildcarded_URL_reference"
   username = "username"
   password = "password"
   port = "port_number"
   protocol = "protocol">
 
関連項目

cfflush、cfheader、cfhtmlhead、cfsetting、cfsilent

 
ヒストリ

ColdFusion MX:

  • cachedirectory 属性および timeout 属性は使用禁止になりました。これらの属性は今後のリリースでは機能せず、エラーが発生する可能性があります。
  • timespan 属性が追加されました。
  • ページのキャッシュ方法が変更されました。action 属性のデフォルト値である cache を使用すると、サーバー上とクライアント上でページがキャッシュされます (以前のリリースでは、このオプションを使用した場合、サーバー上のみでページがキャッシュされていました)。
  • protocol と port の値のソースが変更されました。protocol および port のデフォルト値は、現在のページの URL から取得されます (以前のリリースでは、これらの値はそれぞれ、"http" と "80" でした)。
  • ページをキャッシュするときのセッションステートの扱い方が変更されました。このタグでは、ColdFusion のログインにより安全が確保されているページなど、セッションステートに依存したページをキャッシュすることができます (以前のリリースでは、ページがキャッシュされるとセッションステートがクリアされていたため、認証が失われる原因となっていました)。
  • ファイルのキャッシュ方法が変更されました。このタグでは、ファイルをキャッシュするファイル名に URL の hash() が使用されます (以前のリリースでは、"cfcache.map" ファイルが使用されていました)。

 
使用方法

このタグは、コンテンツが頻繁に更新されないページで使用します。このアクションを実行すると、ユーザーが使用するアプリケーションのパフォーマンスが大幅に向上します。

キャッシュされたページの出力は、クライアントのブラウザまたは ColdFusion サーバー上のファイルに保管されます。ColdFusion では、ページの出力がリクエストされるたびにそれを再生成してダウンロードするのではなく、キャッシュされた出力を使用します。ColdFusion では、timespan 属性の指定、または cfcache action=flush の呼び出しによってキャッシュがフラッシュされる場合にのみ、ページが再生成され、ダウンロードされます。

単純な形式でのキャッシュ機能を有効にするには、timespan 属性を指定した cfcache タグをページの先頭に挿入します。ColdFusion により、指定時間が経過するごとに、キャッシュからページのコピーがフラッシュ (削除) され、新しいコピーがキャッシュされて、ユーザーからのアクセスに備えられます。

action 属性を使用すると、クライアントサイドでのキャッシュを指定することも、クライアントサイドとサーバーサイド両方でのキャッシュ (デフォルト) を指定することもできます。クライアントサイドでのキャッシュの利点は、ColdFusion のリソースが必要ないという点です。ここではブラウザ自身のキャッシュにページが保管され、パフォーマンスが高められます。クライアントサイドとサーバーサイド両方でのキャッシュの利点は、サーバーのパフォーマンスを最適化できるという点です。たとえば、ブラウザにページのキャッシュがない場合、サーバーは自身のキャッシュからデータを取得することができます。Macromedia では、サーバーサイドのみのキャッシュはお勧めしません。クライアントサイドとサーバーサイド両方でのキャッシュをお勧めします。

個人用のコンテンツが含まれているページの場合、action = "clientcache" オプションを使用すると、個人用のページのコピーが他のユーザー用にキャッシュされるおそれがなくなります。

アプリケーションページでデバッグが有効にされていないかぎり、デバッグを設定しても cfcache では無効になります。キャッシュファイルの生成時、cfcache では cfsetting showDebugOutput = "no" が使用されます。

cfcache タグでは、URL パラメータを含む固有の URL それぞれが、キャッシュを行うための独立したページとして評価されます。たとえば、http://server/view.cfm?id=1 の出力と http://server/view.cfm?id=2 の出力は別々にキャッシュされます。

cfcache タグでは、cfhttp タグを使用してキャッシュするページのコンテンツが取得されます。ページへのアクセス中に HTTP エラーが発生した場合、コンテンツはキャッシュされません。ColdFusion エラーが発生すると、そのエラーがキャッシュされます。

詳細については、『ColdFusion MX 開発ガイド』の第13章の「ColdFusion アプリケーションの最適化」 の「変更頻度の低い ColdFusion ページのキャッシュ」を参照してください。

 
<!--- この例では、URL パラメータの順列と同じ数だけ、
キャッシュファイルが作成されます。タイムスタンプが変わらないときに、ページが
キャッシュされていることがわかります。--->

<cfcache
timespan="#createTimeSpan(0,0,10,0)#">
<body>

<h3>簡単な出力のテスト</h3>

<cfoutput>
このページは次の時刻に生成されました : #now()#<br>
</cfoutput>

<cfparam name = "URL.x" default = "no URL parm passed" >
<cfoutput>URL.x の値は # URL.x # です。</cfoutput>
ACTION  
  オプション
 
Default value: "cache"
  • cache: サーバーサイドおよびクライアントサイトでのキャッシュです。
  • flush: キャッシュされたページを更新します。
  • clientcache: ブラウザサイドのみのキャッシュです。個人用ページをキャッシュする場合に、このタグを使用します。
  • servercache: サーバーサイドのみのキャッシュです。この値は推奨されません。
  • optimal: "cache" と同様です。
DIRECTORY  
  オプション
 
Default value: "cf_root/cache"

キャッシュディレクトリの絶対パスです。

TIMESPAN  
  オプション
 
Default value: "cfcache action = "flush" が実行されたときにのみ更新されます。"

キャッシュからページがフラッシュされるまでの間隔です。

  • 10 進数で表した日数。例 :
    • - 4 分の 1 日 (6 時間) の場合、「.25」と指定します。
    • - 1 日の場合は「1」と指定します。
    • - 1 日半の場合は「1.5」と指定します。
  • CreateTimeSpan 関数の戻り値です。例 : "#CreateTimeSpan(0, 6, 0, 0)#"
EXPIREURL  
  オプション
 
Default value: "キャッシュされているページすべてを更新します。"

action = "flush" と共に使用します。URL へのリファレンスです。ColdFusion により、URL が指定されたキャッシュディレクトリ内のマッピングと照合されます。ワイルドカードを指定できます。例 : "*/view.cfm?id=*"

USERNAME  
  オプション
 

ユーザー名です。ページに Web サーバーレベルの認証が必要な場合に、この属性を指定します。

PASSWORD  
  オプション
 

パスワードです。ページに Web サーバーレベルの認証が必要な場合に、この属性を指定します。

PORT  
  オプション
 
Default value: "現在表示しているページのポート"

URL をリクエストしている Web サーバーのポート番号です。ColdFusion では、cfcache から cfhttp への内部呼び出しにおいて、ページ内の各 URL 変数が変換されます。これにより、ページ内のそのリンクの有効性を保つことができます。

PROTOCOL  
  オプション
 
Default value: "現在表示しているページのプロトコル"

キャッシュから URL を作成するときに使用するプロトコル

  • http://
  • https://