во-первых, работает onApplicationStart()
больше не перезапускает приложение, чем при работе в мыши щелкните обработчик события onClick()
вызывает кнопку мыши подавлять. onApplicationStart()
называется в результате приложения, начинающегося, а не наоборот.
Во-вторых, Application.cfm не имеет ничего общего с жизненным циклом приложения, это просто файл CFML, который включается в начале каждого запроса. он более тесно связан с onRequestStart()
, чем onApplicationStart()
: файл, к сожалению, неверно указан. Его аналог onRequestEnd.cfm
демонстрирует это.
Я предполагаю, что ваше требование здесь состоит в том, чтобы повторно инициализировать область применения, да? У вас есть все ваши области приложения настройки, изолированных в определенном файле CFML, например: applicationSettings.cfm
, а затем логику, как это в вашем Application.cfm
:
// Application.cfm
if (!structKeyExists(application, "inited")){
include "applicationSettings.cfm";
}
(тогда как последняя вещь в applicationSettings.cfm
установить application.inited
в true
) ,
Если так что вам просто нужно изменить свое состояние, чтобы включить ваш URL переменную REINIT, например:
if (!structKeyExists(application, "inited") || structKeyExists(URL, "reinit")){
include "applicationSettings.cfm";
}
Почему требуется url.reinit в быть логическим - я обычно проверяю его в URL-адресе и оставляю его на этом? Я использовал для проверки true/false, но я думаю, что это только привычка от Fusebox дней ... теперь не вижу смысла? (Конечно, на общедоступном сервере есть преимущество в проверке на определенный пароль для повторной инициализации, чтобы избежать потенциальной DoSing на основе appreload.) –
Хорошая точка @PeterBoughton: сила привычки. Это не то, что когда-либо будет передано как «ложное», и чтобы там было законное действие, если это так ;-) (код обновлен) –
Когда я выталкиваю сайт для производства, я стараюсь, чтобы установить повторно на значение что нельзя легко догадаться, чтобы другие не могли повторно использовать приложение. Почему я беспокоюсь об этом? Я не знаю. @AdamCameron - в моих приложениях у меня часто есть код, который проверяет значение «reinit» в 'onrequestStart()', который просто вызывает 'onApplicationStart()'. Не уверен, почему вы подразумевали это, это невозможно. –