Frage

Ich habe eine Abfrage, die einige Daten abruft. Ich möchte zeigen, dass die Daten einige Bedingungen in verschiedenen div-Tags berücksichtigen. Nun meine Frage ist, Ich tue dies, indem die Abfrage einmal Looping und die Daten in drei verschiedenen Strukturen bekommen und diese Strukturen mit während der Anzeige. Ist das ein guter Ansatz oder durch die Abfrage jedes Mal Looping in jedem div um den Zustand zu überprüfen ist die rirht Ansatz?

     <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> 

Oder kann ich die folgenden Ansatz

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
War es hilfreich?

Lösung

ich glaube, Sie Ihre Frage ein wenig zu bearbeiten haben werden, einige Beispiele setzen.

Weniger Looping ist immer der beste Ansatz :) Weniger Umwandlung, wenn nicht notwendig ist, bester Ansatz:)

Wenn Sie Ihre Daten in einer Abfrage ist, als es gibt keine Notwendigkeit zu Schleife mehr als einmal, ich denke ...

Andere Tipps

Der beste Ansatz wird immer auf Ihr spezielles Problem abhängen.

Obwohl weniger Schleifendurchläufe immer schnellere Leistung führen, manchmal kann es akzeptabel sein, eine Leistung aus Gründen der besseren Lesbarkeit zu opfern.

Die Wartungskosten sind in der Regel der teuerste Teil der Software, so dass es sich lohnt, den Code zu machen leicht zu lesen.

In diesem speziellen Fall:

  • Es sei denn, die getAttributes Abfrageergebnis ist ungewöhnlich groß (wie über 10000 Zeilen) oder diese Seite ist ungewöhnlich oft geladen (wie mehr als einmal / s), wird es wahrscheinlich nicht einen spürbaren Unterschied machen, wie viele Zeiten, die Sie Schleife über es.

  • nehmen Beiden Optionen genau die gleiche Menge an Zeit, sowieso: Die erste Option Schleifen über die Abfrage zweimal. Die zweite Option Schleifen durch die Abfrage einmal zwei structs aufzufüllen, dann die Anzeigecode Schleifen durch jede der erzeugten Strukturen (die kombiniert die gleiche Anzahl von Elementen wie die Abfrage Zeilen hat), in der gleichen genaue Anzahl der insgesamt Iterationen resultierenden ( entspricht getAttributes.recordcount*2).

  • Der Code, der die Abfrageergebnisse in verschiedene structs spaltet ist etwas ungewöhnlich, damit die Lesbarkeit verringert und maintenence Kosten erhöht werden. Da es nicht tatsächlich die Leistung zu verbessern ist, ist es völlig kontraproduktiv und sollte nicht verwendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top