这些ColdFusion组件之间有什么区别吗?
我知道结果是一样的,但有什么真正的区别吗?也许是速度什么的这些ColdFusion组件之间有什么区别吗?,coldfusion,cfc,Coldfusion,Cfc,我知道结果是一样的,但有什么真正的区别吗?也许是速度什么的 component { remote function getMath(){ math = 2 + 2; return math; } } 或 远程函数getMath(){ 数学=2+2; 回归数学; } 或 数学=2+2; 回归数学; 并不特别 版本3,完整标签,将向后兼容ColdFusion 8和ColdFusion服务器的开源版本,如Railo或OpenBD 版本2既不是什么也不是什么
component {
remote function getMath(){
math = 2 + 2;
return math;
}
}
或
远程函数getMath(){
数学=2+2;
回归数学;
}
或
数学=2+2;
回归数学;
并不特别
版本3,完整标签,将向后兼容ColdFusion 8和ColdFusion服务器的开源版本,如Railo或OpenBD
版本2既不是什么也不是什么
版本1是完整的ColdFusion 9脚本版本
我建议您在第一个版本和最后一个版本之间进行选择,并坚持使用。版本2与coldfusion 8不向后兼容,既不是标记也不是脚本。这样的编码很快就会变得一团糟 如果您计划用脚本编写所有内容,那么示例1就是一个不错的选择 您可以在脚本中做任何您想做的事情,如果缺少什么,您可以编写一个cfc来实现缺少的功能,然后用新语法调用它
如果你从一个新的代码库开始,我会尽量避免使用任何标记,因此选择1。在执行速度方面,它们都编译为相同的字节码,因此应该是相同的 就键入的字符数而言(不包括换行符/制表符): 例1:64 例2:100 例3:129 如果您运行的是Adobe CF9,请使用选项1。它要简洁得多。现在你几乎可以在
中做任何事情
如果要检查每个文件的编译字节码,请在cf admin中保存.class文件,并使用反编译器在/Classes目录中查看这些文件。例如,cfscript可能要快一点,并且与其他语言更一致,而方法更简单(隐藏更复杂)并且更相似 CF最初是一种基于脚本的语言,现在已经发展到包含一种完整的脚本风格来替代这种方法
差异是开发人员风格的问题。谢谢您提供的信息。我想开始用cfscript编写所有组件,但我知道cfscript仍然有一些限制。我还想在我的应用程序中保持所有内容的一致性,因此选项3可能是最好的选择。我只是不确定它是否有任何负面影响。再次感谢。许多coldfusion博主对cfscript和cfml中哪一种表现最好表示了不同的看法。我正在用cfscript编写组件,就像您的版本1一样。由于我的背景更像java,我发现cfscript组件比基于标记的组件更可读。缺点是我必须为没有类似cfscript的标记编写cfscript包装。所以请注意,并不是所有的标记都有相同的cfscript。对于语言新手来说,这是一个令人困惑的方面
cfscript
刚开始时还不成熟,如果还不是100%。我们仍然使用基于标记的语法,因为它是100%完整的,我不想将CFC包装在标记功能上,因为我知道在将来的某个时候,在cfscript
赶上基于标记的语法之后,这将是多余的。@Ciaran Archer,几个月前,我把所有的开发工作都转到了完整的脚本组件上,我再也没有回头看。我不记得上次在组件中使用标记是什么时候了,但可能是为了编写包装器函数。虽然CFScript在某些方面仍然不足,但我并没有遇到过很多情况,因为它阻碍了我的工作。
<cfcomponent>
<cfscript>
remote function getMath(){
math = 2 + 2;
return math;
}
</cfscript>
</cfcomponent>
<cfcomponent>
<cffunction name="getMath" access="remote">
<cfscript>
math = 2 + 2;
return math;
</cfscript>
</cffunction>
</cfcomponent>