Scripting 我们可以用等价的cfscript语句替换每个ColdFusion标记吗?

Scripting 我们可以用等价的cfscript语句替换每个ColdFusion标记吗?,scripting,coldfusion,coldfusion-9,Scripting,Coldfusion,Coldfusion 9,我想知道我的cfml页面或cfc组件是否可以只使用cfscript标记 我们可以在任何地方使用它吗?它的使用有什么限制吗 编辑: 我很好奇,因为我读了下面这行 除了变量设置外,其他操作往往会稍微复杂一些 使用CFScript比使用标记更快 在coldfusion 8和以下版本中阅读它,像cfmail这样的标记在cfscript中不可用。但是,您可以通过将其包装在CFF函数中来调用它们,如下所示: <cffunction name="myCfEmail"> <cfmail

我想知道我的cfml页面或cfc组件是否可以只使用
cfscript
标记

我们可以在任何地方使用它吗?它的使用有什么限制吗

编辑:

我很好奇,因为我读了下面这行

除了变量设置外,其他操作往往会稍微复杂一些 使用CFScript比使用标记更快


在coldfusion 8和以下版本中阅读它

,像cfmail这样的标记在cfscript中不可用。但是,您可以通过将其包装在CFF函数中来调用它们,如下所示:

<cffunction name="myCfEmail">
    <cfmail ...></cfmail>
</cffunction>

<cfscript>
    myCfEmail();
</cfscript>
<!--- tag version --->
<cfwhatever arg1="val1" arg2="val2" ... />

<!--- script version --->
<cfscript>
  cfwhatever(arg1="val1", arg2="val2", ...);
</cfscript>

myCfEmail();

在coldfusion 9中,您实际上可以对一些标记执行此操作。请参见如何执行此操作。

大多数标记现在都是作为CFScript就绪的实现实现的,但并非所有标记都是这样实现的。与前一张海报所说的相反,CFMAIL是已经完成的工作之一:

至于其他脚本覆盖范围,则在文档中:

注意,现在完全可以用脚本编写CFC了:

但我会谨慎行事,因为并不是所有的标签都是在脚本中实现的,如果你突然发现你也需要在你的脚本中只使用其中一个CFC。。。你有点卡住了

此外,我认为像CFQUERY这样的结构比Query.cfc的方法更优雅

至于说CFScript比基于标记的代码快的评论,自从CFMX7.0中的编译器更改以来,情况就不是这样了。大部分代码现在编译成几乎相同的东西。有些操作在CFScript中更快,有些在基于标记的代码中更快。这就是说,与调整实际代码或DB访问或内存处理相比,这些性能提升将是最小的:我不会将基于标记的代码重构为基于脚本的代码来尝试找到性能提升。

从CF11开始

一般格式如下:

<cffunction name="myCfEmail">
    <cfmail ...></cfmail>
</cffunction>

<cfscript>
    myCfEmail();
</cfscript>
<!--- tag version --->
<cfwhatever arg1="val1" arg2="val2" ... />

<!--- script version --->
<cfscript>
  cfwhatever(arg1="val1", arg2="val2", ...);
</cfscript>

对于尚未编写脚本的标记(或者您使用的是旧版本的CF),它们中的许多已转换为UDF。看一看。确实存在cfmail,但是对于未实现的标记,我的方法是解决这个问题的一种方法。编辑了我的问题。对不起,伙计,我的意思是CFMAIL的cfscript版本存在。根据链接,有一个Mail.cfc实现了CFMAIL的功能。很抱歉给你带来了困惑。