Какую область применения использовать? - PullRequest
1 голос
/ 01 марта 2012

Я использую 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>

Ответы [ 3 ]

3 голосов
/ 01 марта 2012

Да Переменные

Может быть: Приложение, Cookie, Запрос, Сервер, Сессия

No: Аргументы, Атрибуты, Звонящий, CGI, Клиент, Flash, Форма, Локальный, Это ThisTag, Тема, Тема локальная, URL

Информацию о каждой области видимости см. В документации CF9: типы областей действия .

Похоже, вы реализуете шаблон Front Controller .

Реализация Application.cfc с onRequest (), который запускает ваш фрагмент кода. Таким образом, он будет перехватывать все входящие запросы и включать соответствующий cfm. Пропуск необходимости обработчика index.cfm, который просто включает другие шаблоны cfm.

Дальнейшая оптимизация. Пусть ваш метод doLookup () вернет Struct, содержащий только recordCount + movieId, так как кажется, что это все, что вы используете. Возвращение всего запроса медленнее, чем просто структура из двух чисел.

Документация CF9: Application.cfc .

3 голосов
/ 01 марта 2012

Variables (это то, что у вас есть сейчас), безусловно, работает. Другим разумным вариантом будет Request, но я бы склонялся к variables над request.

2 голосов
/ 01 марта 2012

Хотя для включенной страницы будет доступна либо область Variables, либо область Request, использование области Request может быть полезным, поскольку это область, которая предназначена для доступа к любому файлу в запросе, тогда какVariables область видимости обычно воспринимается как специфическая для данной страницы.

Фактически область действия Request была первоначально введена для Allaire Spectra с целью совместного использования переменных в пользовательских тегах.Так что, хотя оба будут делать то, что вы хотите, я бы сказал, что область действия Request может иметь небольшое преимущество в разъяснении намерений чуть больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...