也许标题看起来有点奇怪,但我的问题是直截了当的,如何使用 Application.cfm 重新初始化应用程序,我知道我们在 Application.cfc 中是如何做的
<cfscript>
if(structKeyExists(url, 'reinit')) {
onApplicationStart();
}
</cfscript>
但是如何在Application.cfm中,不确定,请指导
谢谢
也许标题看起来有点奇怪,但我的问题是直截了当的,如何使用 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();
}