【问题标题】:When should one use Custom Tag in CFML?什么时候应该在 CFML 中使用自定义标签?
【发布时间】:2011-08-01 02:59:08
【问题描述】:

implementing CFML Custom Tag(不是 CFX 标签)有哪些常见用例?在我 CF exp 的 3 年里,我从未写过一篇。有人请赐教,在哪种用例/情况下会选择自定义标签而不是 cfc / udf?

【问题讨论】:

标签: coldfusion custom-tag


【解决方案1】:

请记住,自定义标签曾经是扩展 CFML(直到第 4 版)的唯一可用方法 - UDF 稍后出现(CF 5),而 CFC 更晚出现(CF MX)。它们不像以前那样常用,原因很简单,就是有更多的选择。

自定义标签在本质上基本上是程序化的语言,使用 CFC,在实践中变得越来越 OO。这是它们不太常见的另一个原因。

但仍有一些情况下它们会派上用场(但从不需要)——主要用于接口工作。创建开始和结束状态的能力肯定会派上用场。一个简单的例子可能是页面内容的“包装器”,开始标签可能会添加 HTML 标题和页面导航,而结束标签会添加页脚并结束页面。

这样你的页面内容可以是:

<cfmodule... >
       Page Content!
</cfmodule>

当然还有其他方法可以做到这一点 - 但有时经典仍然有价值。 ;^)

【讨论】:

    【解决方案2】:

    查看 CFUniform 项目,了解自定义标签使用的一个很好的示例。在为应用程序的 UI 部分构建可重用的部分时,自定义标签非常有用。

    【讨论】:

      【解决方案3】:

      我认为,由于 UDF、CFC 以及与 Java(以及在较小程度上是 .NET)的集成允许以更简单、更直接的方式来做类似的事情,因此自定义标签大部分都被搁置了。

      回顾我刚开始CF5的时候,我能想到几个例子。一个不错的可能是 CFX)Zip,它允许与 Zip 文件交互,之前可以直接通过 CF 使用。

      在更现代的环境中,我能想到的唯一用途是提供不是用 Java 或 .NET 编写的预编译代码,例如用 C 编写的专有小玩意儿。不过,这是一个非常小众的用途。

      老实说,我想在这一点上它们比其他任何东西都存在更多或向后的兼容性。

      【讨论】:

        【解决方案4】:

        自从 CFC 出现以来,我已经停止使用自定义标签,仅仅是因为开销。它们需要很长时间才能启动和执行。但就像@Jim Davis 所说,它们可能在您需要编写一个包含其他内容的标签时很有用。

        但在定义明确的解决方案中,您可以将它们一起使用。

        【讨论】:

        • 在一个小网站上你不会注意到。但是当我们在使用自定义模块与组件构建的查询上运行负载测试器时。或者甚至围绕调用进行迭代 CFLOOP,性能存在巨大差异。这可能是因为 ColdFusion 在单独的线程中执行自定义模块。
        猜你喜欢
        • 2011-07-19
        • 2010-09-09
        • 1970-01-01
        • 1970-01-01
        • 2013-01-05
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        • 2011-04-15
        相关资源
        最近更新 更多