ColdFusion 9.0 Resources |
Caching ColdFusion pages that change infrequentlyContents [Hide]Some ColdFusion pages produce output that changes infrequently. For example, if you have an application that extracts a vendor list from a database or produces a quarterly results summary. Normally, when ColdFusion gets a request for a page in the application, it does all the business logic and display processing that are required to produce the report or generate and display the list. If the results change infrequently, it is an inefficient use of processor resources and bandwidth. The cfcache tag tells ColdFusion to cache the HTML that results from processing a page request in a temporary file on the server. This HTML need not be generated each time the page is requested. When ColdFusion gets a request for a cached ColdFusion page, it retrieves the pregenerated HTML page without having to process the ColdFusion page. ColdFusion can also cache the page on the client. If the client browser has its own cached copy of the page from a previous viewing, ColdFusion instructs the browser to use the client’s page rather than resending the page. Note: The cfcache tag caching mechanism
considers that each URL is a separate page. Therefore, http://www.mySite.com/view.cfm?id=1
and http://www.mySite.com/view.cfm?id=2 result in two separate cached
pages. Because ColdFusion caches a separate page for each unique
set of URL parameters, the caching mechanism accommodates pages
for which different parameters result in different output.
Using the cfcache tagYou tell ColdFusion to cache the page results by placing a cfcache tag on your ColdFusion page before code that outputs text. The tag lets you specify the following information:
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"> Important: If an Application.cfm or Application.cfc
page displays text (for example, if it includes a header page),
use the cfcachetag 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 pagesColdFusion automatically flushes any cached page if you change the code on the page. It also automatically flushes pages after the expiration time span passes. 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 the CFML Reference. |