Skip to content
This repository was archived by the owner on May 6, 2025. It is now read-only.

Modules

Anton Ignatov edited this page Jun 20, 2013 · 8 revisions

Modules

Structure

Список модулей

app

Конструктор приложения.

app

ajax

Модуль отвечающий за ajax запросы. Позволяет отправлять POST, GET запросы, а так же делать обрыв активных запросов.

ajax

events

Реализация шины событий. Можно привязывать, отвязывать, либо обрабатывать событие только один раз, кроме того есть возможность создавать другие шины событий, что полезно для упрощения логики внутри модулей, и при этом не сыплется лишнего в глобальную шину событий.

events

utils/params

Модуль преобразующий объект с данными в GET строку пригодную для передачи через ajax запрос.

utils/params

utils/destroyer

Модуль для уничтожения объекта, рекурсивно (при указании параметра is_deep) и асинхронно удаляет все свойства объекта (удаляются ссылки на объекты, а не сами объекты).

utils/destroyer

underscore

Утилитный фреймворк.

underscore

config

Список настроек модулей.

config

utils/errorHandlers/errorHandler

Является хранилищем для произвольного набора обработчиков ошибок.

utils/errorHandlers/errorHandler

utils/errorHandlers/console

Модуль логирования ошибок в консоль.

utils/errorHandlers/console

loader

Модуль для загрузки js файлов виджетов.

loader

clicks

Модуль выступающий в качестве фасада. Навешивает обработчиков на клики по сабмиту форм и ссылкам, принимает данные и запускает механизм перехода между страниц, также проверяет наличие history, при его отсутствии прекращает дальнейшую инициализацию.

clicks

sections

Основной модуль для работы с секциями, умеет загружать, кэшировать и менять секции с помощью модулей sections/loader, sections/transition, sections/cache. Также не будет работать, если модуль history возвращает false.

sections

clicks/forms

Модуль обрабатывает клики на кнопке submit для форм с аттрибутом data-reload-sections, достает данные о необходимых секциях, url и вызывает обработчика, после чего отменяет дефолтное поведение.

clicks/forms

clicks/anchors

Модуль обрабатывает клики по ссылкам с аттрибутом data-reload-sections, достает данные о необходимых секциях, url и вызывает обработчика, после чего отменяет дефолтное поведение.

clicks/anchors

history

Надстройка над historyAPI, необходима для создания событий истории.

history

utils/popups

[Не используется] Модуль предоставляющий базовый функционал по отображению попапов если контент пришедший с бека имеет специальную пометку.

utils/popups

dom

Минимальный набор методов для работы с DOM. Api методов максимально совместимо с jQuery.

dom

utils/guid

Модуль для генерации уникального id в формате UUID.

utils/guid

lib/domReady

Библиотека предоставляющая функционал отслеживания события onDOMReady

lib/domReady

widgets

Инициализирует виджеты на DOM-элементах, хранит список инстансов.

widgets

utils/widgetsData

Модуль вытаскивает данные о необходимых виджетах для данного куска html, либо DOM-элемента. Далее эти данные могут быть переданы в модуль widgets, чтобы проинициализировать все модули.

utils/widgetsData

sections/loader

Загрузчик секций с сервера, данные о небходимых секциях отправляются в хидере X-Che-Sections, это необходимо, чтобы точно отличать остальные запросы от запросов за секциями, так как согласно основной идее эти запросы отправляются всегда на разные url

sections/loader

sections/transition

Представляет собой звено для цепочки переходов, получая данные о секциях, и ссылку на предыдущий переход, конструктор Transition создает объект Invoker, устанавливает ссылку на новый объект в предыдущем объекте Transition, и сохраняет ссылку на предыдущий Transition. Кроме того проходит по цепочке и удаляет записи, если длина цепочки превышает 10 объектов

sections/transition

sections/cache

Кэш для загруженных секций, сохраняет в localStorage, используя в качестве ключа url и поле header, в котором сейчас передаются данные о секциях, при этом состояние не сохраняется, если в качестве значения поля method указано post

sections/cache

lib/serialize

Метод сериализующий данные формы в формат приемлимый для отправки на бек в ajax запросе.

lib/serialize

lib/async

Модуль предоставляющий функционал асинхронной обработки данных с использованием WebWorkers.

lib/async

sections/asyncQueue

Реализация асинхронной очереди, основная идея в том, что используя модуль для асинхронной работы с данными (lib/async), создается модуль, который представляет собой единственный экземпляр async, отсюда любая команда, добавленная в эту очередь выполнится только после того как будут выполнены предыдущие. Это позволяет совершать довольно большой объем работы в асинхронном режиме, то есть не блокируя основной поток.

sections/asyncQueue

utils/storage/storageFactory

Фабрика, инициализирующая необходимый модуль для работы с хранилищем.

Доступные типы хранилищ:

  • localStorage - хранит данные в localStorage и sessionStorage
  • cookies - хранит данные в cookies
  • fake - фейковый режим (ничего никуда не сохраняется)

utils/storage/storageFactory

sections/invoker

Модуль для непосредственного выполнения переходов. Получая данные о секциях, создает набор объектов, необходимых для замены DOM-элементов. Создаются массивы элеметов, которые необходимо изъять из DOM, а также те, которые должны быть вставлены вместо. Операция смены секции полностью обратима и так же кроме вставки/удаления элементов подразумевает включение (инициализацию)/отключение виджетов.

sections/invoker

sections/parser

Модуль для парсинга селекторов у приходящих секций.

sections/parser

sections/section

Фасад, предоставлющий необходимый функционал для работы с секцией. Вставка в DOM, изъятие из DOM, включение/выключение виджетов привязанных к секции, предоставление событий onInsert и onRemove

sections/section

utils/log

utils/log

module

Неизвестная зависимость для utils/log

module

utils/storage/cookieStorage

Модуль для хранения временных данных в cookies

utils/storage/cookieStorage

utils/storage/abstract

Метод реализующий абстрактный api для работы с разными типами хранилищ.

utils/storage/abstract

utils/storage/fakeStorage

Модуль для фейкового режима работы с хранилищем

utils/storage/fakeStorage

utils/storage/localStorage

Модуль для хранения временных данных в localStorage/sessionStorage

utils/storage/localStorage

Граф зависимостей

Граф зависимостей модулей

Расшифровка

Черная линия со стрелкой – Указывает на модуль от которого зависит модуль из которого связь выходит

Граф зависимостей модулей

click/forms зависит от lib/serialize

Красная пунктирная линия со стрелкой – Указывает на модуль который зависит от модуля в который связь приходит

Граф зависимостей модулей

от lib/serialize зависит click/forms

Синяя линия со стрелкой – Указывает форсированную зависимость модуля от модуля из которого связь выходит

Граф зависимостей модулей

click/anchors не будет запущен пока не загрузится модуль dom