目录
北极星书库
关于这三种变量在第二章已经有较为详细的讨论,在此仅作一些补充说明。
- Application.cfm是个标准的CFM文件,可以在Application.cfm中使用动态参数,根据查询结果或客户信息等动态地决定应用程序级的设置。
2. 这三种变量是在整个应用程序范围内存在的变量,此处“应用程序范围”指的是由同一个Application.cfm文件所确定的范围,应用程序根目录下的所有文件不一定都处在同一个“应用程序范围”。
3. 应注意这三种变量与缺省变量的区别。缺省变量也可以在整个应用程序范围中访问,但它是定义在Application.cfm中,靠每个文件都包含了Application.cfm而实现应用程序范围的共享,实际上在每个文件中,缺省变量都是局部变量,在一个文件中改变缺省变量的值不会影响到其它文件(除非使用了动态参数)。而Application变量,Session变量,和Client变量既使不定义在Application.cfm中,也可以在整个应用程序范围共享,在一个文件中改变这三种变量的值将会影响到整个应用程序。
4. 当使用CFLOCATION重定向一个文件时,Client.URLToken会自动被追加在URL后面。你可以在CFLOCATION标签中设置ADDTOKEN=”NO”来禁止这种追加。
5. 如果Client变量存储在系统注册表中,而你需要把它转移到另一台计算机中,你可以输出(export)注册表中的响应键值,然后输入(import)到目标计算机的系统注册表中。
Application变量,Session变量,和Client变量的比较
下表显示了Application变量,Session变量,和Client变量之间的关系:
变量种类 |
|||||
变量类型 |
应用程序名 |
客户IDs |
Client Mgmt |
Session Mgmt |
过期时间 |
Client |
可选 |
必需 |
必需 |
不需要 |
可选 |
Session |
可选 |
必需 |
必需 |
必需 |
可选 |
Application |
必需 |
不需要 |
不需要 |
不需要 |
可选 |
注意Session变量需要客户状态管理。
Application变量和Session变量的使用技巧
通常,Applicaton变量和Session变量用来存储不常需要写但经常需要读的信息。在多数情况下,这些变量的值只在应用程序启动时(Application变量)或Session建立时(Session变量)被赋值。然后变量的值在应用程序或Session的生存期内被多次引用。
使用Application变量时,要记住这些变量被一个应用程序的多个实例共享。因此,Application变量的值有可能会被同时运行的其它实例所覆盖。如果用这些变量存储“一次写入,多次读出”的信息,则不会出什么问题,否则应该考虑同一应用程序的不同实例之间的相互影响。(注:当多个客户同时链接到一个应用程序时,即产生该应用程序的多个“实例”。)
下面的例子演示了Application变量的使用。注意这段代码位于Application.cfm文件中,因为要执行对每个应用程序文件都需要的操作时,Application.cfm是最好的地方。在这个例子中,一个变量“Application.Initialized”被用来作为标志,指明应用程序变量是否已经初始化。
<!--- Declare a name for this application. This
automatically turns on application scope --->
<CFAPPLICATION NAME="AccountCheck">
<!--- Test to see if application variables have already been defined --->
<CFIF NOT IsDefined("application.initialized")>
<CFSET application.query1= ??? >
<CFSET application.query2= ??? >
<CFSET application.initialized=1>
</CFIF>
前页
目录
北极星书库