将目前已有的数据推送到客户端.
<cfflush interval = "数据量整数大小(bytes)">
|
属性 |
必选/可选 |
默认 |
描述 |
|---|---|---|---|
|
interval |
可选 |
|
整数. 当数据达到该数值的大小时,开始推送数据.另当该标签开始执行时,HTML 标题头,和在该标签之前已有的数据是不在数值大小计算的范围之内。 |
该标签第一个响应将发送HTML头部内容及目前已产生的内容, 随后cfflush 标签只发送上一个推送操作之后的内容.
当推送数据时,请确保数据包大小分片大小是否足够,部分浏览器可能因为数据量太小而导致没有响应请求,一般情况, 设置 interval 属性为100多bytes以上,但不要超过1000 bytes.
当需要传送大量数据到客户端才使用interval 属性,如 cfloop 或者 cfoutput 执行一个巨大的查询. 在全局模式下使用这种方式 (如在Application.cfm 使用该标签) 当 CFML 标签修改 HTML 头部. 将会引起不可预料的错误 。
因 cfflush 标签在执行过程中发送数据到客户端的浏览器,于是有以下几个限制条件:
以下的范例用了 cfloop 标签和 rand 随机产生数据 来延时显示数据.模拟一个显示页面数据非常慢的环境。
<h1>Your Magic numbers</h1>
<p>It will take us a little while to calculate your ten magic numbers. It takes a lot of work to find numbers that truly fit your personality. So relax for a minute or so while we do the hard work for you.</p>
<H2>We are sure you will agree it was worth the short wait!</H2>
<cfflush>
<cfflush interval=10>
<!--- Delay Loop to make it seem harder. --->
<cfloop index="randomindex" from="1" to="200000" step="1">
<cfset random=rand()>
</cfloop>
<!--- Now slowly output 10 random numbers. --->
<cfloop index="Myindex" from="1" to="10" step="1">
<cfloop index="randomindex" from="1" to="100000" step="1">
<cfset random=rand()>
</cfloop>
<cfoutput>
Magic number #Myindex# is: #RandRange
100000, 999999)#<br><br>
</cfoutput>
</cfloop>