Coldfusion 哪个是正确的使用范围?

Coldfusion 哪个是正确的使用范围?,coldfusion,scope,Coldfusion,Scope,我正在使用ColdFusion 9.0.1 我正在运行一个包含其他页面的页面。本页的主要目的是确定要包含的页面。将包含的页面将使用我在页面中使用的变量,即MovieID(在本例中) 我的问题是,在本页上使用哪个范围最好?会是变量吗 <cfscript> Lookup = CGI.QUERY_STRING; Query = CFC.doLookup(Lookup); if (Query.RecordCount == 0) { include "Content/Home.cfm"

我正在使用ColdFusion 9.0.1

我正在运行一个包含其他页面的页面。本页的主要目的是确定要包含的页面。将包含的页面将使用我在页面中使用的变量,即MovieID(在本例中)

我的问题是,在本页上使用哪个范围最好?会是变量吗

<cfscript>
Lookup = CGI.QUERY_STRING;
Query = CFC.doLookup(Lookup);
if (Query.RecordCount == 0) {
    include "Content/Home.cfm";
} else {
    // MOVIE PAGE
MovieID = Query.MovieID; // WHAT SCOPE SHOULD I USE HERE? FOR MOVIEID?
include "Content/Movie.cfm";
}
</cfscript>

Lookup=CGI.QUERY\u字符串;
Query=CFC.doLookup(查找);
if(Query.RecordCount==0){
包括“Content/Home.cfm”;
}否则{
//电影页面
MovieID=Query.MovieID;//我应该在这里使用什么范围?对于MovieID?
包括“Content/Movie.cfm”;
}

变量
(这就是您现在拥有的)当然有效。另一个合理的选择是
请求
,但我倾向于
变量
,而不是
请求

变量
(这就是您现在拥有的)当然有效。另一个合理的选择是
请求
,但我倾向于
变量
而不是
请求

,尽管
变量
范围或
请求
范围将可用于包含的页面,使用
Request
scope可能会有所帮助,因为它是一个用于请求中任何文件的作用域,而
变量
作用域通常被认为是特定于给定页面的

事实上,
Request
scope最初是为Allaire Spectrum引入的,目的是在自定义标记之间共享变量


因此,虽然两者都可以满足您的要求,但我想说,
Request
scope可能有一个小小的优势,可以更清楚地说明意图。

尽管
变量
scope或
Request
scope都可以在包含的页面上使用,使用
Request
scope可能会有所帮助,因为它是一个用于请求中任何文件的作用域,而
变量
作用域通常被认为是特定于给定页面的

事实上,
Request
scope最初是为Allaire Spectrum引入的,目的是在自定义标记之间共享变量

因此,虽然两者都可以做您想要的事情,但我想说,
请求
范围可能有一个小优势,那就是稍微澄清一下意图。

是: 变数

可能: 应用程序、Cookie、请求、服务器、会话

否: 参数、属性、调用方、CGI、客户端、Flash、表单、本地、此 ThisTag,线程,线程本地,URL

有关每个范围的信息,请查看CF9文档:

听起来你在实施一个新的计划

使用运行代码段的onRequest()实现Application.cfc。这样,它将拦截所有传入的请求并包含相应的cfm。跳过只包含其他cfm模板的handler index.cfm

进一步优化。让您的doLookup()方法返回一个结构,其中只包含recordCount+movieId,看起来这就是您正在使用的全部内容。返回整个查询比只返回两个数字的结构要慢

CF9文档:.

是: 变数

可能: 应用程序、Cookie、请求、服务器、会话

否: 参数、属性、调用方、CGI、客户端、Flash、表单、本地、此 ThisTag,线程,线程本地,URL

有关每个范围的信息,请查看CF9文档:

听起来你在实施一个新的计划

使用运行代码段的onRequest()实现Application.cfc。这样,它将拦截所有传入的请求并包含相应的cfm。跳过只包含其他cfm模板的handler index.cfm

进一步优化。让您的doLookup()方法返回一个结构,其中只包含recordCount+movieId,看起来这就是您正在使用的全部内容。返回整个查询比只返回两个数字的结构要慢


CF9文档:.

非常感谢您提供的附加信息(Wiki链接),以及将控制器移动到Application.cfc的建议。既然你提到了,这是个完美的主意。非常感谢!!!Query.MovieID也可以被使用,并且或多或少是只读的。非常感谢您提供的附加信息(Wiki链接),以及将控制器移动到Application.cfc的建议。既然你提到了,这是个完美的主意。非常感谢!!!MovieID也可以被使用,它或多或少是只读的。杰克,谢谢你澄清和确认我的想法。我真的很感激。杰克,谢谢你澄清和证实我的想法。我真的很感激。是的,看来这个要求可能有点好处。谢谢你的信息!是的,看来这个请求可能有点优势。谢谢你的信息!