Coldfusion 哪个是正确的使用范围?
我正在使用ColdFusion 9.0.1 我正在运行一个包含其他页面的页面。本页的主要目的是确定要包含的页面。将包含的页面将使用我在页面中使用的变量,即MovieID(在本例中) 我的问题是,在本页上使用哪个范围最好?会是变量吗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"
<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也可以被使用,它或多或少是只读的。杰克,谢谢你澄清和确认我的想法。我真的很感激。杰克,谢谢你澄清和证实我的想法。我真的很感激。是的,看来这个要求可能有点好处。谢谢你的信息!是的,看来这个请求可能有点优势。谢谢你的信息!