任何人在ColdFusion 11中遇到cfflush标签问题?我们有一个例程,它在处理循环时更新实时记录计数。在ColdFusion 10中,这很好用。在ColdFusion 11中,它会一直等到循环结束才能更新屏幕。不是我们所期望的。
编辑按要求添加代码...
<script language="javascript">
addOutputLine('<br /><span id="insertCount">Records Inserted: 0</span>')
</script>
<cfset insertCount = 0>
<cfset updateCountAfter = 1>
<cfif qry.recordcount gt 5000>
<cfset updateCountAfter = 10>
</cfif>
<cfoutput query="qry" startrow="#DATASTART#">
<!---do some stuff here that is not important to this issue--->
<cfset insertCount = insertCount + 1>
<cfif updateCountAfter gt 1>
<cfif insertCount mod updateCountAfter eq 0>
<script language="javascript">document.getElementById('insertCount').innerHTML = 'Records Inserted: #insertCount#';</script>
</cfif>
<cfelse>
<script language="javascript">document.getElementById('insertCount').innerHTML = 'Records Inserted: #insertCount#';</script>
</cfif>
<cfflush>
</cfoutput>
答案 0 :(得分:11)
从评论中推广
<cfflush>
标记与Web服务器一起正常工作所需的配置设置。在Configuring web servers in Windows文档页面的为Windows中的ColdFusion配置IIS 部分,其中包括:
要禁用网络服务器缓冲区,请将cfroot \ config \ wsconfig \ 1 \ isapi_redirect.properties文件中的
is_buffer_enable
[原文如此]更改为false
。如果希望cfflush在IIS连接器上工作,请禁用webserver缓冲区。如果您的应用程序不使用cfflush,请将其设置为true以提高性能。
请注意,我在上面引用的Adobe文档中存在拼写错误。它应该说明iis_buffer_enable
,而不是is_buffer_enable
(错过&#39; i&#39;)。感谢KrunchMuffin指出这一点。
您需要重新启动IIS才能使此更改生效。
我不确定禁用此设置的性能影响。您需要为特定环境进行一些负载测试才能看到。