Coldfusion 在Cfquery或结构上循环?

Coldfusion 在Cfquery或结构上循环?,coldfusion,struct,cfloop,Coldfusion,Struct,Cfloop,我有一个检索一些数据的查询。 我想在不同的div标签中显示一些条件下的数据。 现在我的问题是,, 我这样做是通过循环查询一次,在三个不同的结构中获取数据,并在显示时使用这些结构。这是一个好方法还是一个好方法 每次在每个div中循环查询以检查条件是rirht方法吗 <tr > <td > features: </td> <td > <cfloop query="getAttributes"> <

我有一个检索一些数据的查询。 我想在不同的div标签中显示一些条件下的数据。 现在我的问题是,, 我这样做是通过循环查询一次,在三个不同的结构中获取数据,并在显示时使用这些结构。这是一个好方法还是一个好方法 每次在每个div中循环查询以检查条件是rirht方法吗

     <tr >
<td >
  features:
 </td>
 <td >
    <cfloop query="getAttributes">
      <cfif getAttributes.type_id EQ 1>
        #getAttributes.seat#<br>
      </cfif>
    </cfloop>
 </td>
</tr>
<tr>
 <td >
  Disclosures:
 </td>
 <td >
    <cfloop query="getAttributes">
   <cfif getAttributes.type_id EQ 2>
          #getTicketAttributes.seat#<br>
   </cfif>
  </cfloop>
  </td>
 </tr> 
或者我可以使用下面的方法吗

seatStruct 
disclosureStruct 
<cfloop query="getAttributes">  
<cfif getAttributes.type_id EQ 1> 
Insert seatStruct 
<cfelseif getAttributes.type_id EQ 2> 
insert disclosureStruct 
</cfif> 
Now use these structs to display

我想你得稍微修改一下你的问题,举个例子

减少循环始终是最佳方法: 如果没有必要,减少转换是最佳方法:


如果您的数据在一个查询中,则无需多次循环,我想…

最佳方法始终取决于您的具体问题

虽然更少的循环迭代总是会导致更快的性能,但有时为了提高可读性而牺牲一些性能是可以接受的

维护成本通常是软件中最昂贵的部分,因此使代码易于阅读是值得的

在这种情况下:

除非getAttributes查询结果异常大,如over 10000行或此页面加载异常,通常超过 一次/秒,它可能不会有明显的区别多少 每次你都会绕过去

无论如何,这两个选项所用的时间完全相同:第一个选项在查询上循环两次。第二个选项在查询中循环一次以填充两个结构,然后显示代码在每个生成的组合结构中循环,这些组合结构的元素数与查询的行数相同,从而产生与getAttributes相同的总迭代次数。recordcount*2

将查询结果拆分为不同结构的代码有些不寻常,因此降低了可读性并增加了维护成本。因为它实际上并没有提高性能,所以它完全是适得其反的,不应该使用


嗨,我已经添加了代码。我可以用两种不同的结构来获取内容并使用它们,而不是采用上述方法吗?喜欢seatStruct ExposureStruct Insert seatStruct Insert ExposureStruct现在使用这些结构来显示。您还可以执行查询:从getAttributes中选择,其中类型为2,类型为1,因此同样不需要转换为结构。确定,这是否意味着查询是比使用结构更好的方法?如果您在查询中存储了数据,请将其用作查询。如果它不适合您的显示需要,请更改查询。仅仅为了简单的表输出,不需要转换/解析所有这些。此外,您没有嵌套数据之类的,所以请保持简单。。谢谢Zarko。实际上你的方法很好。谢谢,我不知道这个查询:新到CF