вопрос по MVC - как подключать компоненты динаически?
Ситуация в общих чертах такая:
Есть страница, на ней несколько панелей. Допустим одна панель есть постоянно, а 2 другие могут появляться в зависимости от какой-то логики на стороне сервера. На каждой из этих панелей свои элементы управления со своей клиентской логикой. Как правильно это сделать в виде MVC-приложения? Приходят на ум 3 варианта: 1) Сделать одно приложение в котором перечислить все контроллеры, виды и модели для всех трёх панелей. Тут настораживает избыточность - зачем загружать контроллеры которые в большинстве случаев использоваться не будут? 2) Сделать 3 приложения, каждое в отдельном .js-файле. Сервер при формировании страницы на свое усмотрение подключит необходимые приложения. Это нормально что на одной странице параллельно работают 3 разных приложения? 3) как-то динамически добавлять в приложение необходиые контроллеры и виды в зависимости от AJAX-ответа сервера. Такое возожно? Нигде не встречал примеров где контроллер добавлялся бы "на лету". Направьте пожалуйста новичка на путь истинный.... Заранее благодарен. |
Первый вариант лучше.
Постепенная загрузка контроллеров используется только в режиме разработки. Множество обращений к серверу может быть в этом случае причиной долгой загрузки приложения. В режиме "продуктива" приложение собирают в один файл, который минимизирован, грузится один раз и кэшируется браузером. Лишняя дюжина контроллеров никак не отразится на скорости загрузки в этом случае. Другие варианты нужно рассматривать только для очень больших приложений, по-моему. |
+1 к Новикову, у нас делается именно так
|
Часовой пояс GMT +3, время: 08:45. |