为了提高WEB站点的性能,在服务器端或客户端,或者同时在服务器端和客户端存储一个页面的副本。此标签奖ColdFusion页面返回的静态HTML代码存储为临时文件。当页面不是必须在用户每次访问时都要获取动态内容时,使用此标签。你可以将这个标签用于简单的URL,也可以存储带变量的URL内容。[译者注:即get型变量]
ColdFusion MX:
<cfcache
action = "cache|flush|clientcache|servercache|optimal"
directory = "directory name"
expireURL = "wildcarded URL reference"
password = "password"
port = "port number"
protocol = "http://|https://"
timespan = "value">
username = "username">
属性
|
属性 |
必须/可选 |
默认 |
Description |
|---|---|---|---|
|
action |
可选 |
cache |
|
|
directory |
可选 |
cf_root/cache |
缓存存储的绝对路径 |
|
expireURL |
可选 |
指定要刷新所有的缓存页面 |
当action="flush"时使用。一个URL列表。ColdFusion在指定的缓存文件夹内,从这个列表中获取需要刷新的文件。可以使用通配符,如*/view.cfm?id=*。 |
|
password |
可选 |
|
密码,如果页面有服务器级别的认证,需要用这个参数来提供密码。 |
|
port |
可选 |
当前页的端口号 |
端口号。cfchche标签用cfhttp来调用存储在服务器端的缓存页面缓存页面,这个属性用来指定端口号 |
|
protocol |
可选 |
当前页面的协议 |
从缓存中建立URL使用的协议
|
|
timespan |
可选 |
只有cfcache=flush指定时页面才刷新 |
缓存页面刷新的时间间隔。
|
|
username |
可选 |
|
用户名。如果页面有服务器级别的认证,需要用这个参数来提供用户名。 |
这个标签使用在内容不经常更新的页面。使用这个标签可以显著的提高应用程序的性能。
输出的缓存文件存储在服务器端或者客户端,或者两端都存储。每次需要读取这些内容时,ColdFusion不会重新生成并让客户端下在这些内容,而是使用缓存过的输出。当缓存被刷新后,ColdFusion会重新生成并让客户端下载新的内容。你可以通过指定timespan属性或者使用cfcache标签并指定action=flush来刷新缓存。
这个标签最简单的使用方法是:在页面顶端使用cfcache标签,并指定timespan属性。每当一个指定的周期过去,ColdFusion会刷新这些缓存。
你可以用action属性指定ColdFusion是在客户端存储缓存还是同时在服务器端和客户端存储缓存(默认)。只在客户端储存的优势是不需要任何ColdFusion服务器的资源,浏览器会将文件存储到客户端的缓存区,有性能上的优势。同时在客户端和服务器端存储的优势是优化了服务器端的性能,如果一个在客户端没有缓存的浏览器访问了这个页面,ColdFusion可以从服务器端读取缓存。(Adobe建议你将缓存同时存储在客户端和服务器端,不建议你只将缓存存储在服务器端)
如果一个页面包含只与访问者本人有关的信息,应使用action="clientcache"来防止其他人看到这些信息。
Debug设置对cfcache没有用,除非在程序中开启debugging。当生成一个缓存时,cfcache会使showDebugOut=no。
cfcache标签将不同的URL(包括参数)都当作独立的页面。例如http://server/view.cfm?id=1 和 http://server/view.cfm?id=2 这两个页面的缓存是分开存储的。
cfcache使用cfhttp来获取缓存页面的内容。如果在用cfhttp缓存页面时产生了一个http错误,那么这个错误将不会被保存下来。如果产生了一个ColdFusion错误,那么这个错误的输出将被缓存下来。
了解更多的信息, 请参考ColdFusion开发者指南的 "Caching ColdFusion pages that change infrequently"。
<!--- 这个范例对一个URL的所有可能的参数都分别建立了缓存。你可以看到缓存建立之后,访问这个页面时看到的时间是建立缓存时的This example produces as many cached files as there are URL parameter permutations.
--->
<cfcache
timespan="#createTimeSpan(0,0,10,0)#">
<body>
<h3>This is a test of some simple output</h3>
<cfoutput>
This page was generated at #now()#<br>
</cfoutput>
<cfparam name = "URL.x" default = "no URL parm passed">
<cfoutput>The value of URL.x = # URL.x #</cfoutput>