如果我在application.cfc中有组件级属性,那么每次页面都会对它们进行评估,还是仅在创建应用程序时对它们进行评估?
<cfcomponent>
<cfscript>
this.name = "WARM2_Demo";
this.applicationTimeout = CreateTimeSpan(1,0,0,0);
this.setClientCookies = true;
this.setDomainCookies = false;
this.sessionManagement = true;
this.sessionTimeout = CreateTimeSpan(0,0,30,0);
this.clientManagement = false;
this.scriptProtect = true;
this.appDirectory = getDirectoryFromPath(getCurrentTemplatePath());
this.fileSeparator = createObject("java","java.lang.System").getProperty("file.separator");
....
</cfscript>
<cffunction name="OnApplicationStart" returntype="boolean">
<cfscript>
setupApplication();
return true;
</cfscript>
</cffunction>
....
</cfcomponent>
答案 0 :(得分:4)
每次请求都会执行Application.cfc 的伪构造函数
。基本上在幕后,每个请求都会创建一个Application.cfc实例,并且该实例化的行为就像任何其他CFC实例一样:伪构造函数位 - CFCOMPONENT标记内的东西,但是与任何CFFUNCTION /函数声明一样 - 是运行
运行伪构造函数后,将运行任何适当的事件处理程序/拦截器方法,例如:onRequestStart()。
注意:你可以通过在那里输出一些东西来轻松地自己测试。它会在每次请求时显示在屏幕上(使其成为getTickCount()或createUuid()调用,以便您可以看到它发生变化)。
答案 1 :(得分:0)
进行评估。我想。
将它们贴在Application
onApplicationStart()
范围内
但老实说,fileSeparator ??只需使用/
,它就可以在Windows和* nix OS上运行。 :)