User Guide

Table Of Contents
300 Chapter 13: Designing and Optimizing a ColdFusion Application
You can also specify several attributes for accessing a cached page on the web server, including a
user name and password (if required by the web server), the port, and the protocol (HTTP or
HTTPS) to use to access the page.
Place the
cfcache tag before any code on your page that generates output, typically at the top of
the page body. For example, the following tag tells ColdFusion to cache the page on both the
client and the server. On the server, the page is cached in the e:/temp/page_cache directory.
ColdFusion retains the cached page for one day.
<cfcache timespan="#CreateTimespan(1, 0, 0, 0)#" directory="e:/temp/
page_cache">
Caution: If an Application.cfm or Application.cfc page displays text (for example, if it includes a
header page), use the
cfcache tag on the Application.cfm page, in addition to the pages that you
cache. Otherwise, ColdFusion displays the Application.cfm page output twice on each cached page.
Flushing cached pages
ColdFusion automatically flushes any cached page if you change the code on the page. It also
automatically flushes pages after the expiration timespan passes.
You can use the
cfcache tag with the action="flush" attribute to immediately flush one or
more cached pages. You can optionally specify the directory that contains the cached pages to be
flushed and a URL pattern that identifies the pages to flush. If you do not specify a URL pattern,
all pages in the directory are flushed. The URL pattern can include asterisk (*) wildcards to
specify parts of the URL that can vary.
When you use the
cfcache tag to flush cached pages, ColdFusion deletes the pages cached on the
server. If a flushed page is cached on the client system, it is deleted, and a new copy gets cached
the next time the client tries to access the ColdFusion page.
The following example flushes all the pages in the e:/temp/page_cache/monthly directory that
start with HR:
<cfcache action="flush" directory="e:/temp/page_cache/monthly" expirURL="HR*">
If you have a ColdFusion page that updates data that you use in cached pages, the page that does
the updating includes a
cfcache tag that flushes all pages that use the data.
For more information on the
cfcache tag, see CFML Reference.
Caching parts of ColdFusion pages
In some cases, your ColdFusion page might contain a combination of dynamic information that
ColdFusion must generate each time it displays the page, and information that it generates
dynamically, but that change less frequently. In this case, you cannot use the
cfcache tag to cache
the entire page. Instead, use the
cfsavecontent tag to cache the infrequently changed content.
The
cfsavecontent tag saves the results of processing the tag body in a variable. For example, if
the body of the
cfsavecontent tag contains a cfexecute tag that runs an executable program
that displays data, the variable saves the output.