存储客户端变量

你可能记得,会话变量存储在内存中,而客户端变量在磁盘存储结构。在内存中的Session变量的内部结构是不重要,而是用于存储客户端变量的选择一些值得讨论。默认情况下时,coldfusion存储客户端变量在Windows注册表中。正如你可以看到,所有的客户端变量分配给某次会议是根据1项,即从CFID和某次会议CFTOKEN其名称中。问题是,在Windows注册表从未作为高速数据预期,存储和检索系统,并连续访问大量地影响服务器的性能。一个更好的选择是存储在数据库服务器客户端变量。这是更多地参与稍微比在注册表中存储的数据。您必须先设立一个数据库,ColdFusion可以使用客户端变量存储。为此,请按照下列步骤:

  

1。在ColdFusion管理员,建立一个ColdFusion数据源在其中存储客户端变量。 (它应是一个实际的数据库服务器,如Microsoft SQL Server或Oracle,而不是一个文件为基础,如Microsoft Access产品。)

2。转到客户的ColdFusion管理员变量,选择您刚刚创建的数据源,然后单击添加。

3。给数据源一个有意义的描述,留在它们的默认位置所有复选框,然后点击提交。修改后,下面的这些步骤退房中的设置只有当你绝对相信,你需要。,您的数据库现在包含两个新的文章:cdata且CGLOBAL。 CDATA包含客户端可变数据,并包含每个CGLOBAL如命中计数和上次访问的时间会议上,全球信息。要开始使用的数据库客户端变量,你可以做以下两件事之一:

设置为默认客户端数据源在ColdFusion管理员变量存储选项。这是一个好主意,因为你的代码都必须改变,以支持它。这不是一个好主意,但是,如果你运行多个Web多个Clientvariable数据库网站,因为您可能无意中存储在错误的位置变量。

使用CFAPPLICATION标签如下:

这是一般的更好的选择,因为它让您对您的客户在变量存储更精确的控制。

...

为什么我们使用UCase()?不幸的是,JSESSIONID参数的Session.URLToken部分列为小写参数; J2EE的,但是,要求JSESSIONID作为大写包括在内。如果您不包括调用UCase(),不保留国家之间的请求。一个ColdFusion的发展往往是可悲的忽视重要的细节是应用程序框架,它可以归结为两个部分:Application.cfm,OnRequestEnd.cfm和CFAPPLICATION标记的有效利用。一个文件,将存在于几乎每一个ColdFusion应用程序是Application.cfm。 ColdFusion每个页面之前,运行这个文件的要求,使Application.cfm的绝佳场所设置,如您的数据源名称的变量,每个页面请求可以使用,数据库用户名和密码,以及其他全球常量。此外时,coldfusion也将执行模板命名每个页面请求OnRequestEnd.cfm,使OnRequestEnd.cfm的理想场所,为您的网站放在页脚代码。当您请求一个ColdFusion模板,首先ColdFusion是否是申请外观。在目录中包含的模板立方英尺的要求。如果ColdFusion发现Application.cfm,搜索和ColdFusion停止执行Application.cfm。如果没有一个在当前目录Application.cfm时,coldfusion搜索目录中的每一个要求的模板的路径,直到ColdFusion找到一个文件名为Application.cfm。例如,如果您要求荤:\ inetpub \ wwwroot的\ mydirectory \ mytemplate.cfm时,coldfusion将寻找Application.cfm在顺序以下目录:

ç:\ inetpub \ wwwroot的\ mydirectory \ ç:\ inetpub \ wwwroot的\ ç:\ inetpub \ ç:\

如果ColdFusion没有找到一个Application.cfm要求各地模板的目录层次时,coldfusion只是简单地执行所要求的模板。如果被请求的模板结束时,coldfusion看起来那里发现一个名为OnRequestEnd.cfm的文件Application.cfm在同一目录。如果没有找到ColdFusion作为Application.cfm在同一地点OnRequestEnd.cfm时,coldfusion简单结束的请求。 OnRequestEnd.cfm不遵循相同的目录遍历进程Application.cfm没有。问题是要知道在何处放置Application.cfm和OnRequestEnd.cfm。某些应用程序把每个应用程序的单个目录中Application.cfm,而别人不包括Application.cfm的。最好的做法是介于这两个极端之间,我通常在根目录结构为我的整个应用程序只有一个Application.cfm。我会,但是,添加一个Application.cfm地方,它是绝对必要的,但是我非常小心地添加Application.cfm只有在我有一个令人信服的理由这样做。 CFAPPLICATION是ColdFusion的的应用程序框架的基石。没有CFAPPLICATION,你将无法设置客户端,会话或应用程序变量,你将无法保持状态,因为CFAPPLICATION是ColdFusion的处理CFID和CFTOKEN机制。在CFAPPLICATION状态管理方面是前面提到的,而是一个CFAPPLICATION不幸的是常常被忽视的属性是name属性:

到单独的应用空间的CFAPPLICATION分区应用,会话,和客户端变量名称的属性。如果您调用的MyApp的名字CFAPPLICATION在一个请求和一个在另一个的YourApp请求名称,既不要求将分享对方的应用程序,会话,或客户端的变量,因为两个不同的应用要求,在空格。问题是,所有的在整个应用程序CFAPPLICATION关键字应该总是引用相同的应用程序的名称。一些开发商尝试分成不同部分的应用程序,但不这样做。分割成多个应用空间单一应用事与愿违,每次都因为开发商都会忘记,在一个应用程序空间使用不同的Session变量的模板比在另一个应用程序空间模板。保持简单和使用的各个环节中的应用程序的要求只有一个应用程序的名称。

由卢卡斯阿内拉斯提交的一篇文章


免责声明:我们的网站是不负责本文章的内容。 Webarticles是一个免费的信息资源。
重要事项: 这篇文章“存储客户端变量”是由一个自动翻译软件。我们感到很遗憾拼写的任何可能发生的错误。谢谢您的理解。


Online: 208 users browsing the articles directory   


  

|