2014-02-25 83 views
0

今天我正在读博客Difference between THIS and APPLICATION scope。什么解释了我的理解,之后我在我的Application.cfc中声明了一个变量,我可以在我的所有页面中访问该变量。所以我的问题是我们可以使用THIS范围来声明应用程序级别的变量吗?或者THIS和APPLICATION范围变量之间还有什么区别? 例子: 的Application.cfcColdFusion中THIS范围和APPLICATION范围有什么区别?

<cfset THIS.testVar1 = 50> 
<cfset APPLICATION.testVar1 = 100> 

Index.cfm

<cfdump var="#THIS.testVar1#"> O/P: 50 
<cfdump var="#APPLICATION.testVar2#"> O/P: 100 

因此,这导致我认为,无论是范围是相似的。请让我知道这些范围之间是否有更多不同之处。

+0

当您在Application.cfc中使用'THIS'范围来设置变量时,实际上并没有将它存储在应用程序范围中。该代码将在每个页面请求上得到处理。 –

+0

@ScottStroz:处理的手段? –

+0

如果您在psuedo构造函数中使用了',那么每行页面请求都会执行一行代码。但是,如果你设置了一个Application范围变量,正确的方法(例如在'onApplictionStart()'中有其他方法,但这是很常见的),它只会在应用程序启动时或者如果你有逻辑重新初始化应用程序的应用程序。 –

回答

2

This Application.cfc中的作用域用于设置cf应用程序设置,并应使用cf10中的https://wikidocs.adobe.com/wiki/display/coldfusionen/GetApplicationMetadata来读取。

This普通cfc的范围是用于存储公共功能和公共属性。

Application范围是用于存储和提取数据片段,通常是app配置和单例实例。它一直存在,直到cf应用程序超时,停止或服务器重新启动。

相关问题