cfloop vs cfoutput bei Abfragen

8

Ich entwickle mit ColdFusion und wollte wissen, welche Strategie am besten geeignet ist, um große Abfrageergebnisse zu durchlaufen. Gibt es einen Leistungsunterschied zwischen der Verwendung von cfloop und cfoutput? Wenn nicht, gibt es einen Grund, einen vor dem anderen zu bevorzugen?

    
Abbadon 08.10.2012, 13:36
quelle

4 Antworten

12

Ich glaube, dass das früher so war. Ich denke, dass dieser Unterschied in Angriff genommen wurde, die beste Wette ist, einen Test für jeden zu machen, um in Ihrem spezifischen Anwendungsfall zu testen.

%Vor%

Es gibt jedoch einige bemerkenswerte Unterschiede. cfoutput kann gruppierte Schleifen ausführen, was cfloop nicht kann.

%Vor%

Für cfoutput können Sie startrow und maxrows (oder die Anzahl) angeben, um das Ergebnis zu paginieren. Für cfloop müssen Sie den endrow Index anstelle der Anzahl angeben.

Außerdem können Sie cfoutput nicht für eine Abfrage verwenden, die in einem vorhandenen cfoutput -Tag verschachtelt ist. Sie müssen das enthaltende cfoutput zuerst beenden.

    
Stuart Wakefield 08.10.2012, 13:45
quelle
3

Ein guter Grund, cfloop anstelle von cfoutput zu verwenden, ist, wenn Sie eine Abfrageausgabe innerhalb einer anderen Abfrageausgabe loopen müssen. cfoutput unterstützt keine geschachtelte Abfrageausgabe. Sie können jedoch mit cfloops damit durchkommen. Also:

%Vor%

funktioniert nicht, aber wenn Sie die cfoutputs durch cfloops ersetzen, wird es.

Ab CF10, mit der Möglichkeit, CFLOPS zu gruppieren, ist das der einzige verbleibende funktionelle Unterschied. Sie machen beide dasselbe.

    
K_Cruz 08.10.2012 15:34
quelle
2

Ich glaube, es ist dasselbe wie Leistung, Ben Forta

Und der Rest ist so ziemlich persönliche Vorliebe, wie Sie gerne mit Ihrem Loop arbeiten. Denken Sie daran, dass Sie Ihre Variablen immer innerhalb einer cfoutput-Schleife definieren sollten, die besonders wichtig ist, da die Abfragefelder "referenziert" werden können, ohne auf ihren Bereich Bezug zu nehmen.

Ein Grund, warum Sie den cfloop-Ansatz bevorzugen könnten, wäre, wenn Sie CFoutput während Ihrer Schleife aus irgendeinem Grund "flüchten" müssten. Ich bin mehrmals darauf gestoßen, deshalb bevorzuge ich cfloop.

    
JamesRLamar 08.10.2012 13:46
quelle
1

Es gibt keinen Leistungsunterschied bei beiden Methoden, es hängt wirklich von Ihrem Programmierstil ab. Wenn Sie <cfoutput> oben und unten auf jeder Seite setzen, funktioniert <cfloop> sehr gut. Wenn Sie mehrere <cfoutput> verwenden und nur dort platzieren, wo sie benötigt werden, funktioniert das auch.

Ich gebe <cfoutput> nur dort an, wo sie gebraucht werden, aber ich würde nicht sagen, dass es korrekter ist, als sie oben und unten auf der Seite zu platzieren.

    
Matt Busche 08.10.2012 13:44
quelle

Tags und Links