Respuesta corta: No importa.
cfscript
no genera nada a menos que explícitamente llame a writeOutput() desde allí. Esto incluye funciones en cfscript
, así como cualquier código cfscript
fuera de una función.
Esto es diferente de la sintaxis de las etiquetas CF, que, de forma predeterminada, da como resultado al menos espacios en blanco entre las etiquetas. En cfscript
, cualquier texto que escriba será compilado por el motor CFML. en las etiquetas CF, cualquier texto que escriba se escribirá en el búfer de salida y se enviará al navegador.
Respuesta larga: Es lo mismo que no especificar un atributo de salida.
cfscript
bloques no dan salida a nada. Cualquier bloque de etiquetas, a menos que esté envuelto en cfsilent
, da como resultado espacio en blanco si nada más. Sí, incluso las funciones lo hacen, pero la salida se descarta si el atributo de salida se establece en falso.
La esencia de la respuesta de Peter Boughton es correcta. No está incluido en cfsilent
ni cfoutput
. La salida no está prohibida, pero no sucede a menos que lo hagas explícitamente.
Siempre puede combinar una etiqueta basada en cffunction
con scripts para obtener lo mejor de ambos mundos. Algo como...
<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>
Esto le permite especificar una salida y el acceso en la etiqueta cffunction
, así como permitir argumentos para ser opcionales (que no se puede hacer a través cfscript
funciones), a continuación, llenar el cuerpo con cfscript, incluyendo las declaraciones y var la función vuelve.
Por supuesto, para esa función, si se quita el atributo output
o cambiarlo a true
, que se salida "test
" antes de regresar.
En CF9, las funciones definidas en cfscript pueden tener argumentos opcionales. Consulte [Definición de componentes y funciones en CFScript] (http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSE99A664D-44E3-44d1-92A0-5FDF8D82B55C.html). –
Lamentablemente, esto no es realmente correcto. Continúa y ejecuta 'SerializeJSON()' en un resultado ORM en una función cfscript y verás 3 líneas de espacio en blanco. En un 'cffunction' con' output = 'no'' no hay espacios en blanco. – Nucleon
Enmienda: puede poner output = "no" en una función de cfscript para silenciar este comportamiento. – Nucleon