Javascript самостоятельно содержал события изолированной программной среды и стек на стороне клиента

Я нахожусь в процессе переноса тяжелого веб-приложения JSF в приложение REST и, в основном, в модуль JS.

I ' мы смотрели "масштабируемую архитектуру приложений javascript" Николасом Закасом в театре YUI (отличное видео), и я успешно выполнил большую часть разговора, но у меня есть несколько вопросов:

  1. Я нашел лекцию немного запутанной в отношении отношений между модулями и песочницами, с одной стороны Насколько я понимаю, модули не должны зависеть от того, что происходит за пределами их песочницы, и именно поэтому они публикуют события через песочницу (а не через ядро, поскольку ядро ​​предназначено для скрытия базовой библиотеки), но каждый модуль в приложении получает новую песочницу? Разве песочница не должна ограничивать события модулями, использующими ее, или события должны публиковаться на каждой странице? Например: если у меня есть две редактируемые таблицы, но я хочу, чтобы каждая из них находилась в отдельной изолированной программной среде, и ее события влияют только на модули внутри этой изолированной программной среды, что-то вроде окна сообщения для таблицы, которая является другим модулем / виджетом, как я могу сделать это с песочницей для модуля, конечно, я могу добавить префикс к событиям с помощью moduleid, но это создает соединение, которого я хочу избежать ... и я не хочу упаковывать модули вместе как один модуль для комбинации, как я уже есть 6-7 модулей.

  2. Хотя я могу скрыть базовую библиотеку для небольших вещей, таких как селектор идентификаторов и т. д. Я все же хотел бы использовать базовую библиотеку для зависимостей модулей и загрузки ресурсов и использовать что-то вроде загрузчика YUI или dojo.require так что на самом деле я скрываю базовую библиотеку, но сами модули определяются и загружаются базовой библиотекой ... мне кажется немного странным.

  3. библиотеки не возвращают простые объекты js, но обычно оборачивают их, например: Вы можете сделать что-то вроде $$ ('. Classname'). Each (.., которая много очищает код, нет смысла оборачивать базу, а затем в модуле создавать зависимость для базовой библиотеки, выполняя .each, но не используя эти функции, делает много написанного кода, который можно опустить ... и реализация этой функциональности очень ошибочна склонный.

  4. У кого-нибудь есть опыт построения лицевой стороны стека этого порядка? Насколько легко изменить базовую библиотеку и / или иметь модули из разных библиотек, используя yui datatable, но делая проверку формы с помощью dojo ...?

  5. В некоторой степени это комбинация 2 + 4, если вы решили сделать что-то вроде I сказал и загрузите виджеты проверки формы dojo для входных данных через загрузчик YUI, это будет означать, что dojocore является модулем, а модуль формы зависит от него?

Спасибо.

8
задан Spencer 8 August 2013 в 15:42
поделиться