从不同的模板调用相同的ColdFusion组件

时间:2017-11-13 16:06:58

标签: coldfusion

在a.cfm中我有:

<CFSET VerObj = New cfcomponents.VerFold.Ver_Users()>
<CFSET VerObj.Functiion_1(userid)>

在接下来的几个模板c.cfm中,我需要在Ver_Users.cfc中调用一个不同的函数,我可以这样做:

<CFSET VerObj = New cfcomponents.VerFold.Ver_Users()> 
<CFSET VerObj.Function_2(userid)>

如果我需要从另一个模板再次调用相同的cfc,我一直这样做,我认为这是非常尴尬和重复?使用.cfc的目的是让我可以通过以下方式重用或调用函数:

 <CFSET VerObj,Function_1()> or calling Function_2 

从任何地方都没有保持实例化cfc我是否正确?有没有关于如何完成这个的例子?

2 个答案:

答案 0 :(得分:2)

实例化组件的性能损失非常小。在不同的模板中重新实例化它并不是错误的。

如果你真的想要删除这几个纳秒的内存字节,你可以在Application.cfc的onApplicationStart()事件中实例化组件一次,并将其存储在应用程序范围内。

<cfset application.verUser = new cfcomponents.VerFold.Ver_Users()>

然后调用cfm中的函数:

<cfset application.verUser.Function_1()>

答案 1 :(得分:0)

@Rbt - 您可以创建一个Application.cfc来实例化Ver_Users组件,并在cfm文件中调用application.Function1()和application.Function2()。您可以创建会话并使用会话范围,或使用将其视为全局的应用程序范围,具体取决于您希望如何使用它。