Kurze Antwort: Es spielt keine Rolle.
cfscript
gibt nichts aus, wenn Sie writeOutput() nicht explizit aufrufen. Dies umfasst Funktionen in cfscript
sowie beliebigen cfscript
Code außerhalb einer Funktion.
Dies unterscheidet sich von der CF-Tags-Syntax, die standardmäßig mindestens Leerzeichen zwischen den Tags ausgibt. In cfscript
wird jeder von Ihnen geschriebene Text von der CFML-Engine kompiliert. In CF-Tags wird jeder von Ihnen geschriebene Text in den Ausgabepuffer geschrieben und an den Browser gesendet.
Lange Antwort: Es ist das gleiche wie kein Ausgabeattribut anzugeben.
cfscript
Blöcke geben nichts aus. Alle Tag-Blöcke geben, wenn sie nicht in cfsilent
eingeschlossen sind, nur Leerzeichen aus. Ja, sogar cffunctions, aber die Ausgabe wird verworfen, wenn das Ausgabeattribut auf false gesetzt ist.
Die Essenz von Peter Boughtons Antwort ist korrekt. Es ist weder in cfsilent
noch in cfoutput
verpackt. Die Ausgabe ist nicht verboten, aber es geschieht nicht, es sei denn, Sie tun es explizit.
Sie können immer eine Tag-basierte cffunction
mit Scripting kombinieren, um das Beste aus beiden Welten zu erhalten. Etwas wie...
<cffunction name="x" output="false" access="package">
<cfargument name="y" type="string" required="false" default="YY" />
<cfscript>
var someValue = y & "something";
writeOutput("test"); // this will not be written
return someValue;
</cfscript>
</cffunction>
Auf diese Weise können Sie auch einen Ausgang und den Zugriff auf die cffunction
Tag angeben als Argumente erlauben optional zu sein (die Sie nicht durch cfscript
Funktionen tun können), dann den Körper mit cfscript füllen, var Aussagen einschließlich und die Funktion zurückgeben.
Natürlich, für diese Funktion, wenn Sie das Attribut output
entfernen oder zu true
ändern, es wird Ausgang „test
“ vor der Rückkehr.
In CF9 können in cfscript definierte Funktionen optionale Argumente haben. Siehe [Definieren von Komponenten und Funktionen in CFScript] (http://help.adobe.com/de_DE/ColdFusion/9.0/Developing/WSE99A664D-44E3-44d1-92A0-5FDF8D82B55C.html). –
Leider stimmt das nicht wirklich. Gehen Sie weiter und führen Sie ein 'SerializeJSON()' auf einem ORM-Ergebnis in einer cfscript-Funktion aus, und Sie sehen 3 Leerzeilen. In einem 'cffunction' mit' output = 'no'' gibt es kein Leerzeichen. – Nucleon
Änderung - Sie können output = "no" auf eine cfscript-Funktion setzen, um dieses Verhalten zu unterdrücken. – Nucleon