也许标题看起来有点奇怪,但我的问题很直接,如何使用application.cfm重新初始化应用程序,我知道我们在application.cfc中如何像一样进行初始化
<cfscript>
if(structKeyExists(url, 'reinit')) {
onApplicationStart();
}
</cfscript>
但是如何在Application.cfm中,不确定,请指导
感谢
首先,运行onApplicationStart()
不会重新启动应用程序,就像运行onClick()
鼠标单击事件处理程序会导致按下鼠标按钮一样。onApplicationStart()
被称为是应用程序启动的结果,而不是相反。
其次,Application.cfm与应用程序生命周期无关,它只是一个CFML文件,包含在每个请求的开头。它与onRequestStart()
的关联比与onApplicationStart()
的关联更紧密:不幸的是,该文件的名称错误。它的对应onRequestEnd.cfm
证明了这一点。
我想你的要求是重新初始化你的应用范围,是吗?您是否将所有应用程序范围设置隔离在特定的CFML文件中,例如:applicationSettings.cfm
,然后在Application.cfm
:中使用类似的逻辑
// Application.cfm
if (!structKeyExists(application, "inited")){
include "applicationSettings.cfm";
}
(然后作为applicationSettings.cfm
中的最后一件事,将application.inited
设置为true
)。
如果是这样,你只需要修改你的条件,包括你的URL reinit变量,例如:
if (!structKeyExists(application, "inited") || structKeyExists(URL, "reinit")){
include "applicationSettings.cfm";
}
在OnRequestStart()中放入如下内容:
param name='url.reloadApp' default='no';
if(url.reloadApp == 'yes')
{
applicationStop();
}