cfloop vs cfoutput查询

Abb*_*don 9 coldfusion cfloop

我开发使用ColdFusion并想知道循环大查询结果集的最佳策略是什么.使用cfloop和cfoutput之间有任何性能差异吗?如果没有,是否有理由更喜欢一个而不是另一个?

Stu*_*eld 12

我相信曾经有过.我认为已经解决了这个差异,最好的办法是为每个测试特定的用例进行测试.

<cfset t = GetTickCount()/>
<cf... query="qry">
  <!--- Do something --->
</cf...>
<cfset dt = GetTickCount() - t/>
<cfdump var="#dt#"/>
<!--- 
If the differences are small you can use java.lang.System.nanoTime() instead 
--->
Run Code Online (Sandbox Code Playgroud)

但是有一些值得注意的差异.cfoutput可以做分组循环,但cfloop不能.

<cfoutput query="qry" group="col">
  <!--- Loops once for each group --->
  <cfoutput>
    <!--- Loops once for each record within the group --->
  </cfoutput>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)

对于cfoutput您可以指定startrowmaxrows(或数量)进行分页您的结果.因为cfloop您必须指定endrow索引而不是计数.

此外,您不能使用cfoutput嵌套在现有cfoutput标记中的查询,您需要先结束包含cfoutput.

  • 在ColdFusion 10中,您现在可以进行分组输出. (3认同)