CFFLUSH  
説明

現在使用可能なデータをクライアントにフラッシュします。

 
カテゴリ

データ出力タグ、ページ処理タグ

 
シンタックス
<cfflush
   interval = "integer number of bytes">
 
関連項目

cfcache、cfheader、cfinclude、cfsetting、cfsilent

 
使用方法

ページ内でこのタグが最初に検出されると、HTML ヘッダおよびその他の使用可能な HTML が返されます。同じページ内の、以降の cfflush タグについては、最後のフラッシュの後で生成された出力のみが送信されます。

少量の情報しかフラッシュしない場合、ブラウザによってはレスポンスしないものもあります。データをフラッシュするときは十分な情報があることを確認してください。また、interval 属性は数百バイトに設定してください。数千バイトでは大きすぎます。

interval 属性は、大きなクエリーの cfloop や cfoutput などにおいて、大量の出力をクライアントに送信する場合にのみ使用します。このフォームをグローバルに使用すると ("Application.cfm" ファイル内など)、HTML ヘッダを修正する CFML タグの実行時に予期せぬエラーが発生する可能性があります。

注意: cfflush タグは、このタグが実行されるときにブラウザにデータを送信するので、いくつかの制限があります。たとえば、ページ上で cfflush タグの後の任意の場所に cfcontent、cfcookie、cfform、cfheader、cfhtmlhead、cflocation、SetLocale といったタグや関数を使用すると、エラーが起きるか、予期せぬ結果になります。これらのタグと関数は、通常は HTML ヘッダを修正するものですが、cfflush タグによってヘッダが送信されてしまうので、cfflush タグの後に記述すると正常に処理を実行できません。cfflush タグを含むページ上の任意の場所で cfset タグを使用して Cookie を設定しても、ブラウザ内に Cookie は設定されません。cfsavecontent タグ、cfquery タグ、カスタムタグなどの本文の中で cfflush を使用すると、エラーになります。クライアント変数を Cookie として保存する場合、cfflush タグの後で設定したクライアント変数はブラウザ内に保存されません。
メモ: 通常、cferror タグでは現在の出力バッファが破棄され、エラーページの内容に置き換えられます。cfflush タグでは現在のバッファが破棄されます。結果として、cfflush の後で使用する cferror タグから生成された Error.GeneratedContent 変数には、フラッシュされていない出力バッファの内容が保存されます。この内容はクライアントには送信されません。エラーページには、送信されたバイトの後の内容がクライアントに対して表示されます。
 

次の例では、cfloop タグと、乱数を生成する rand 関数を使用してデータ表示を遅らせます。ここではデータ生成に時間がかかるページをシミュレートします。

<h1>ユーザーのマジックナンバー</h1>
<p>10 個のマジックナンバーを算出します。ユーザーに合った番号を割り当てるにはいろいろな処理が必要です。結
果が出るまで少々時間がかかります。</p>
<H2>しばらくお待ちください。</H2>
<cfflush>

<cfflush interval=10>
<!--- データ生成に時間をかけるための遅延ループです。 --->
<cfloop index="randomindex" from="1" to="200000" step="1">
   <cfset random=rand()>
</cfloop>

<!--- ゆっくりと 10 個の乱数を出力します。 --->
<cfloop index="Myindex" from="1" to="10" step="1">
   <cfloop index="randomindex" from="1" to="100000" step="1">
      <cfset random=rand()>
   </cfloop>
   <cfoutput>
      マジックナンバー #Myindex#:&nbsp;&nbsp;#RandRange(
100000, 999999)#<br><br>
   </cfoutput>
</cfloop>
INTERVAL  
  オプション
 

整数です。使用可能なバイト数がこの数値に達するたびに、出力をフラッシュします。HTML ヘッダと、このタグの実行時に既に使用可能になっているデータは、このカウントから除外されます。