我需要一个现实检查 - 并希望一个解释(如果我的现实是错误的)。
CF 应用程序框架评估事物的方式是这样的(我的理解)——请求被传递给 cfserver
cf 查找 application.cfm 或 cfc(基于遍历规则)
application.cfc 执行(如果找到)
设置了THIS范围(可以在此处设置一系列特定于应用程序的变量,但
有些是必需的 - 例如“applicationTimeout” - 然后会发生一系列事件 - 如果需要,会触发方法。
-- onApplicationStart()
----onSessionStart()
------onRequestStart()
等等
所以我的问题
1)这个设置发生在每个页面请求上 - 在其他任何事情之前?
2)如果我在 onApplicationStart() 中设置了一个应用程序变量 - 它在之后发生的任何进程中都可用 - 并且应该在内存中持续存在 applicationTimeout() 的长度 - 对吗?
3)所以如果我做这样的事情......
if ( isdefined("application.myvar" ) { this.something = application.myvar; }
它应该在启动应用程序范围的初始请求之后处理任何页面请求。
但是它似乎没有这样做。
我问的原因是这个 - 有一些有趣的应用程序杠杆设置需要在这个范围内设置......其中一些可能是“密集的”(至少从执行每个请求的角度来看 - 所以我想要只做一次,在持久内存中设置一个结构,然后将它们作为 THIS 使用。
我做了一些错误的假设吗?
谢谢