使用JQuery Ajax调用.cfm和.cfc之间的区别?

时间:2019-01-29 15:36:11

标签: web-services coldfusion frameworks coldfusion-11 cfc

我正在使用新系统,几乎没有什么与以前所见不同。基本上,有一个JQuery ajax调用,其类型为“ POST”,其URL指向.cfm页面。 .cfm页将返回html表。

与主要开发人员交谈后,他提到此方法更有效。这样调用.cfm时,我们不会在每次调用时都创建新实例。如果我们使用.cfc并调用函数,则另一种方法是每次创建一个新实例。我不知道屏幕背后的所有内容以及ColdFusion的深层功能。

他用这种方式提到的另一件事是更好的,因为我们不使用任何框架。过去四年来我一直在使用ColdFusion,过去我看到的是JQuery Ajax用特定的component.cfc名称调用method。返回数据并动态创建表。我想知道是否有人对此有所了解,以及为什么.cfm可能比致电.cfc更好。

谢谢。

1 个答案:

答案 0 :(得分:6)

想发表评论

我同意其他人已经说过的话。没有具体的答案,因为它总是依赖更多的内容,而不仅仅是这部分代码。话虽如此...

我从Adobe文档here中找到了相关内容。以下是该文档的摘录。我在粗体中突出显示了似乎相关的部分。请注意有关实例化CFC之后的部分。您可以在链接上阅读更多内容。

  

何时使用CFC

     

您可以通过以下方式使用CFC:

     
      
  • 开发结构化,可重用的代码
  •   
  • 创建Web服务
  •   
  • 创建Flash远程元素
  •   
  • 使用异步CFC
  •   
     

开发结构化,可重用的代码

     

CFC为开发结构化应用程序提供了一种极好的方法,该结构化应用程序将显示元素与逻辑元素分离并封装数据库查询。您可以使用CFC创建您(和其他人)可以在需要时重用的应用程序功能,例如用户定义函数(UDF)和自定义标签。如果要修改,添加或删除组件功能,则只能在一个组件文件中进行更改。   与UDF和自定义标签相比,CFC具有多个优点。 CFC自动提供的这些优点包括以下所有方面:

     
      
  • 将相关方法分组为一个组件,并将相关组件分组为一个包的能力
  •   
  • 多种方法可以共享的属性
  •   
  • 此范围,特定于组件的范围
  •   
  • 从基本组件继承组件方法和属性,包括使用Super关键字
  •   
  • 访问控制
  •   
  • 对CFC方法,属性和元数据的自省
       CFC具有一个特征,使它们无法成为所有代码重用的自动选择。实例化CFC所花的时间要比处理自定义标签所花的时间要多。反过来,与执行用户定义的函数(UDF)相比,处理自定义标签要花费更多的时间。但是,在实例化CFC之后,调用CFC方法的处理开销与等效的UDF大约相同。因此,请勿使用CFC代替独立的,单一用途的自定义标签或UDF。而是使用CFC创建相关方法的主体,尤其是共享属性的方法。   有关UDF,自定义标签和其他ColdFusion代码重用技术的详细信息,请参阅创建ColdFusion元素。
  •   
     

创建Web服务

     

ColdFusion可以自动将CFC方法发布为Web服务。要将CFC方法发布为Web服务,请在该方法的cffunction标记中指定access =“ remote”属性。 ColdFusion生成所有必需的Web服务描述语言(WSDL)代码并导出CFC方法。有关在ColdFusion中创建Web服务的更多信息,请参阅使用Web服务。

现在,我并不总是信任Adobe文档,因为它们有一个讨厌的习惯,就是将现有文档逐个版本地进行升级。所以谁知道这是什么时候最初写的,是否仍然是真的。这是Adobe的ColdFusion特有的,Lucee可能会更擅长处理此问题,但我不确定。

该文档也引用了该文档-Selecting among ColdFusion code reuse methods。我也会在此处添加该信息。

  

下表列出了使用代码重用方法的常见原因,并指出了为每种目的考虑的技术。字母P表示该方法是首选。 (可以有一个以上的首选方法。)字母A表示该方法提供了在某些情况下有用的替代方法。   该表不包括CFX标签。仅在最好用C ++或Java编写功能代码时才使用CFX标签。有关使用CFX标签的更多信息,请参阅使用CFX标签。

enter image description here