5

output="false"所有用 CFML 编写的 cfc 方法都需要吗?或者只要最外面的调用者函数有就可以了output="false"

如果我们不添加output="false"任何 CFC 方法,但我们确保最顶层的调用者在一个<cfsilent>块内会怎样?可以吗?

output="false"仅用于抑制空格?我记得几年前 CFer 说过output="false"有助于防止内存泄漏:神话还是事实?

4

1 回答 1

4

不幸的是,在 Adob​​e ColdFusion中,output="false"组件级别不会影响每个单独的功能,只会影响构造函数区域。这甚至可能无关紧要,因为我想不出一种从构造函数输出任何东西的方法,实际上,即使更改为output="true"似乎也没有什么区别。

我现在(感谢你,Henry)尝试了用 链接函数output="false",你的怀疑是正确的 - 调用函数output="false"会抑制它调用的任何函数的输出。这是在 Adob​​e ColdFusion 9.0.1 中。

在组件的初始化周围添加 acfsilent将使没有 的组件的输出静音output="false",但我再次认为这没有任何作用。放置一个函数调用将使任何它调用的任何输出都静音。

output="false"仅用于空格抑制。您可能会争辩说,向输出缓冲区添加空格会增加每个请求的内存使用量,但我不会真正称其为泄漏 - 也许如果您有数以万计的组件/函数调用,它可能会导致麻烦。

Output="true"确实有不同的效果,将函数视为<cfoutput>包裹了标签,并#自动评估任何动态事物。

于 2013-06-04T00:17:12.430 回答