Pregunta

Tengo una consulta que recupera algunos datos. Quiero mostrar que los datos teniendo en cuenta algunas condiciones en diferentes etiquetas div. Ahora mi pregunta es, Estoy haciendo esto por looping la consulta de una vez y obtener los datos en tres estructuras diferentes y el uso de estas estructuras mientras se muestra. Este enfoque es un bien o bucle a través de la consulta cada vez en cada div para comprobar el estado es el enfoque 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> 

o puedo usar el siguiente método

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
¿Fue útil?

Solución

Creo que tendrá que editar su pregunta un poco, poner algún ejemplo.

Menos de bucle es siempre el mejor enfoque :) Menos de conversión si no es necesario es mejor enfoque:)

Si los datos están en una consulta, que no hay necesidad de bucle más de una vez, supongo ...

Otros consejos

El mejor enfoque siempre dependerá de su problema específico.

A pesar de un menor número de iteraciones del bucle siempre dará como resultado un rendimiento más rápido, a veces puede ser aceptable para sacrificar algo de rendimiento en aras de mejorar la legibilidad.

Los costes de mantenimiento son generalmente la parte más costosa del software, por lo que vale la pena hacer el código fácil de leer.

En este caso específico:

  • A menos que el resultado de la consulta getAttributes es inusualmente grande (como durante 10000 filas) o esta página se carga inusualmente menudo (como más de una vez / seg), es probable que no hacer una diferencia notable cuántos veces que un bucle sobre él.

  • Las dos opciones se llevará a exactamente la misma cantidad de tiempo, de todos modos: Los primeros bucles de opción sobre la consulta dos veces. La segunda opción bucles a través de la consulta de una vez para poblar dos estructuras, entonces sus bucles de código de visualización a través de cada una de las estructuras generadas (que combinado tener el mismo número de elementos como la consulta tiene filas), resultando en exactamente el mismo número de iteraciones totales ( equivalente a getAttributes.recordcount*2).

  • El código que divide los resultados de la consulta arriba en diferentes estructuras es algo inusual, lo que disminuye la legibilidad y el aumento de los costos requieren muy poco mantenimiento. Ya que en realidad no mejorar el rendimiento, es totalmente contraproducente y no se debe utilizar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top