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?
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.
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.
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.
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.
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.
Tags und Links coldfusion cfloop