вторник, 27 мая 2014 г.

Почему контроллеры нужно указывать все и сразу

 Натолкнулся на форуме javascript.ru на вопрос о том, не лучше ли подгружать контроллеры постепенно. Раньше я пробовал создавать несколько экземпляров контроллеров и подгружать их по мере необходимости. Тогда у меня сложилось такое представление.

Сначала приложение выполняет все методы init() во всех контроллерах, чтобы составить список соответствий селектор-обработчик. Затем приложение рисует панели в DOM, попутно навешивая на создаваемые элементы имеющиеся обработчики событий.

Демо 1

В примере, приведённом по ссылке выше, на каждом этапе запуска приложения появляется информационное окно. Становится очевидной последовательность шагов загрузки приложения:
1. Запускаются методы init() в контроллерах
2. Отрисовывается главный контейнер Viewport с прочими виджетами внутри него

Версии ExtJs 4.0.7 при попытке создать и иницализировать контроллер вне  этой схемы появляется сообщение об ошибке.

В версии ExtJs 4.2.0 такого ограничения уже не наблюдается.

Демо 2