User Guide

130 Chapter 2: ColdFusion Tags
cfflush
Description
Flushes currently available data to the client.
Category
Data output tags, Page processing tags
Syntax
<cfflush
interval = "integer number of bytes">
See also
cfcache, cfheader, cfinclude, cfsetting, cfsilent
Attributes
Usage
The first occurrence of this tag on a page sends back the HTML headers and any other available
HTML. Subsequent
cfflush tags on the page send only the output that was generated after the
previous flush.
When you flush data, ensure that enough information is available, as some browsers might not
respond if you flush only a small amount. Similarly, set the
interval attribute for a few hundred
bytes or more, but not thousands of bytes.
Use the
interval attribute only when a large amount of output will be sent to the client, such as
in a
cfloop or a cfoutput of a large query. Using this form globally (such as in the
Application.cfm file) might cause unexpected errors when CFML tags that modify HTML
headers are executed.
Caution: Because the cfflush tag sends data to the browser when it executes, it has several
limitations, including the following: Using any of the following tags or functions on a page anywhere
after the cfflush tag can cause errors or unexpected results: cfcontent, cfcookie, cfform,
cfheader, cfhtmlhead, cflocation, and SetLocale. (These tags and functions normally modify
the HTML header, but cannot do so after a cfflush tag, because the cfflush sends the header.)
Using the cfset tag to set a cookie anywhere on a page that has a cfflush tag does not set the
cookie in the browser. Using the cfflush tag within the body of several tags, including
cfsavecontent, cfquery, and custom tags, cause errors. If you save Client variables as cookies,
any client variables that you set after a cfflush tag are not saved in the browser.
Note: Normally, the cferror tag discards the current output buffer and replaces it with the contents
of the error page. The cfflush tag discards the current buffer. As a result, the
Error.GeneratedContent variable resulting from a cferror tag after a cfflush contains any
contents of the output buffer that has not been flushed. This content is not sent to the client. The
content of the error page displays to the client after the bytes that have been sent.
Example
The following example uses cfloop tags and the rand random number generating function to
delay data display. It simulates a page that is slow to generate data.
<h1>Your Magic numbers</h1>
Attribute Req/Opt Default Description
interval Optional Integer. Flushes output each time this number of bytes becomes
available. HTML headers, and data that is already available
when the tag is executed, are omitted from the count.