Федя Шумов и Арсений Заречнев, фронт-енд разработчики из команды Островка, рассказали о
«Всей соли одностраничных приложений» на 404fest в Самаре.
Содержание доклада:
Single-Page Apps. Вся соль.
Extranet.Ostrovok.ru (система администрирования для отелей). Самое соленое.
Презентацию доклада можно посмотреть тут: Арсений Заречнев и Федор Шумов — Одностраничные приложения
«Всей соли одностраничных приложений» на 404fest в Самаре.
Содержание доклада:
Single-Page Apps. Вся соль.
- Backbone.js
- MVC на клиенте
- Тестирование JS
- Model-View Bindings
- Освещение Batman.js
Extranet.Ostrovok.ru (система администрирования для отелей). Самое соленое.
- Навигация и управление через адресную строку. Слабосвязанные события роутера. Кеширование полезных данных, добываемых из запрошенного URL.
- DOM-связанные данные. Expando. Не засорять неймспейс временными или чужими данными. Использование сторонних библиотек, использующих эту технологию.
- Вьюха строится 1 раз. При уходе на другую страницу она выдирается через Parent.removeChild(Child) или jQuery.detach() и живет с биндингами. При повторном обращении вставляется собранной.
- Отказ от Delegate. Увеличение скорости за счет отсутствия листнеров ивентов на родительском элементе представления.
- Knockout. Ясная логика темплейта. Автоматическое изменение UI. Изменения в DOM только тех аттрибутов и элементов, что действительно того требуют. Безопасный интерфейс. Многопользовательский режим.
- Backbone + Knockout = Router + CRUD + MVVM. Two-way зависимость: методы изменения модели каждого фреймворка синхронизируют связанные объекты и триггерят нужные ивенты друг у друга. Постепенный переход от представлений Backbone к Knockout.
- На страницах, работающих с действительно большими коллекциями и моделями, может потребоваться глубокая оптимизация. Например отказаться от $.extend или _.extend, которые активно используют модели и коллекции фреймворков при инициализации, для обрыва связки в памяти.
Презентацию доклада можно посмотреть тут: Арсений Заречнев и Федор Шумов — Одностраничные приложения