这些ColdFusion组件之间有什么区别吗?

时间:2012-01-08 21:14:13

标签: coldfusion cfc

我知道结果是一样的,但是有什么真正的区别吗?也许速度或什么?

component {

 remote function getMath(){ 

    math = 2 + 2;   

    return math;
  }

}

<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>

4 个答案:

答案 0 :(得分:5)

不是特别的。

版本3,完整标签,将向后兼容ColdFusion 8和ColdFusion服务器的开源版本,例如。 Railo或OpenBD。

版本2既不是东西也不是什么。

版本1是完整的ColdFusion 9脚本版本。

我建议您在第一个版本和最后一个版本之间进行选择并坚持下去。版本2不向后兼容coldfusion 8,既不是标签也不是脚本。像这样的编码会很快变得混乱。

答案 1 :(得分:2)

如果您计划在脚本中编写所有内容,那么示例1就是您的选择。

您可以在脚本中执行任何操作,如果缺少某些内容,您可以编写一个cfc来实现缺少的功能,然后使用新语法调用它。

如果您使用新代码库重新开始,我会尝试避免所有标记,因此选项1。

答案 2 :(得分:2)

就执行速度而言,它们都编译为相同的字节代码,因此应该相同。

根据键入的字符数(不包括换行符/制表符):

例如1:64

例如2:100

例如3:129

如果您正在运行Adobe CF9,请使用选项1.它更加简洁。这几天你几乎可以在<cfscript>做所有事情。

如果要检查每个编译的字节代码,请在cf admin中保存.class文件,并使用反编译器查看/ Classes目录中的文件。例如。 JD-Gui

答案 3 :(得分:1)

cfscript可能更快一点,并且与其他语言更加一致,而方法更简单(隐藏更多复杂性),更像是。

CF起初是一种基础语言,并且已经发展为包含一种完整的脚本风格替代方法。

差异是开发者风格的问题。