12.07.2015 Views

Реактивные веб-сайты Николай Мациевский Евгений ...

Реактивные веб-сайты Николай Мациевский Евгений ...

Реактивные веб-сайты Николай Мациевский Евгений ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

180РЕАКТИВНЫЕ ВЕБ-САЙТЫТакже библиотека позволяет отслеживать повторную загрузку модулей,осуществлять догрузку модулей в случае плохого соединения и дажеобъединять разные модули в один исходный файл через систему алиасов.Таким образом, проблема асинхронной загрузки произвольного деревамодулей оказывается решенной. В случае JSX задача разрешается в обратномпорядке: мы указываем основной файл (вершину дерева зависимостей),а он уже загружает все необходимые ему модули либо проверяет,что модули загружены.Это все?5.5.3. ê¯ÂÌË ÚappleÂÚ¸Â: JSX+7YASSПочти. После недолгих раздумий JSX была взята за основу для построениямодульной системы, которая могла бы стать основой для гибких идинамических клиентских приложений. Удалось совместить оба описанныхвыше подхода, что обеспечило все видимые функциональные требованияк такого рода системе.Для примера можно рассмотреть следующий участок HTML-кода:Давайте разберемся, какую логику загрузки он обеспечивает.1. YASS при инициализации обходит DOM-дерево документа и выбираетвсе узлы с классом yass-module-*.2. После этого формируется два потока загрузки модулей: для dombase-utilsи для dom. Причем в последнем случае загрузки фактическине будет: загрузчик дождется, пока состояние компонентаdom будет выставлено в loaded, и только потом запустит (черeзeval) код, записанный в title этого элемента (в данном случаеэто span).3. Первый поток загрузки асинхронно вызовет три файла с сервера:yass.dom.js, yass.base.js и yass.utils.js. По загрузкевсех этих модулей (ибо они вызваны в цепочке зависимостей, ив данном случае dom зависит от base, который зависит от utils)будут вызваны соответствующие инициализационные функции(если они определены). Таким образом, возможны два типа об-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!