Niestety, w Adobe ColdFusion, output="false"
na poziomie komponentu nie ma wpływu na poszczególne funkcje, tylko na obszar konstruktora. To może nie mieć znaczenia, ponieważ nie mogę wymyślić sposobu na wyprowadzenie czegokolwiek od konstruktora, a nawet zmiana na output="true"
wydaje się nie mieć znaczenia.
Mam teraz (dzięki tobie, Henry) eksperymentować z funkcjami łańcuchowymi z output="false"
, a twoje podejrzenia są słuszne - funkcja wywołująca z output="false"
będzie tłumić wyjście z dowolnej funkcji, którą wywołuje. Było to w programie Adobe ColdFusion 9.0.1.
Dodanie cfsilent
wokół inicjalizacji komponentu spowoduje wyciszenie wyjścia z komponentu bez wartości output="false"
, ale znowu nie sądzę, że to nic nie da. Odwołanie funkcji wywoła wyciszenie dowolnego wyjścia z dowolnego wywoływanego połączenia.
output="false"
służy wyłącznie do tłumienia białych znaków. Można argumentować, że dodanie białych znaków do bufora wyjściowego zwiększyłoby zużycie pamięci na żądanie, ale tak naprawdę nie nazwałbym tego przeciekiem - być może, jeśli masz dziesiątki tysięcy wywołań komponentów/funkcji, może to powodować problemy.
Output="true"
ma inny efekt, traktując funkcję tak, jakby zawierał znaczniki <cfoutput>
i automatycznie oceniał dowolne dynamiczne rzeczy #
.
W pewien sposób wprowadzająca w błąd implementacja atrybutu, moim zdaniem. Zamiast tego powinien zostać użyty 'whitespace = 'false'' ... a domyślny przypadek to' output =' false''. – Manaus