Twitter представил новый открытый JavaScript-фреймворк Flight
1 февраля 2013 года
Компания Twitter, развивающая популярный сервис микроблогов, анонсировала новый событийно-ориентированный JavaScript-фреймворк Flight (Архивная копия от 8 марта 2013 на Wayback Machine), код которого открыт под лицензией MIT. Фреймворк составляет основу клиентской части кода, используемого в новом варианте сайта Twitter, который был введён в строй в прошлом году. Работа Flight протестирована во всех современных браузерах, в том числе в Chrome, Firefox, Safari, Opera и IE7. Из зависимостей используются библиотеки ES5-shim и JQuery.
В отличие от других фреймворков, Flight не навязывает и не предоставляет какие-то конкрентые методы для рендеринга или получения данных. Фреймворк не заботится о том, как именно организован маршрут обработки запросов, какие шаблонизаторы используются и генерируется ли HTML на стороне сервера или клиента. Вместо этого Flight базируется на организации работы поверх уже присутствующей модели DOM, привязывая требуемую функциональность непосредственно к узлам DOM. Подобный подход позволяет не только избежать необходимости задействования дополнительных структур данных, усложняющих архитектуру web-приложения, но и упростить привязку дополнительной функциональности для уже существующих web-приложений.
Архитектура Flight предусматривает строгую изоляцию всех компонентов-обработчиков, которые не могут напрямую взаимодействовать друг с другом, не зависят от других компонентов и не являются элементами дерева объектов. Вместо этого, компоненты должны оформлять действия в виде широковещательных анонсов событий, на которое должны подписываться заинтересованные в них другие компоненты. Когда компонент инициирует событие, он не имеет представления о том, кем и как будет обработано данное событие, что позволяет разрабатывать каждый компонент изолировано, без оглядки на особенности реализации других компонентов - каждый компонент оформляется и распространяется в виде обособленного JavaScript-модуля.
Подписка на обработку определённых типов событий осуществляется с использованием привязки к элементам дерева DOM, при этом таким способом организуется как подписка на нативные события, связанные с узлами DOM, так и на события генерируемые другими компонентами, и те и другие события обрабатываются идентично. В простейшем случае, для реализации нужной функциональности достаточно создать новый компонент и привязать его к DOM-узлу, после чего компонент будет получать связанные с узлом события и сможет манипулировать любыми элементами этого узла. Пример простейшего web-приложения, созданного с использованием Flight, можно посмотреть
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.