16. jQuery – для сайтов
basis.js – для веб-приложений
11
Но есть же jQuery ...
17. Проблемы веб-приложений
12
• Много кода, представлений, данных
• Одни и те же данные в разных представлениях
• Более одного сценария изменения данных
• Асинхронность
• Динамические представления
• Локализация
• Адаптивность
• ...
18. basis.js предоставляет
13
• Модульность, namespace
• Конструирование классов
• Работу с данными
• Сетевое сообщение
• Построение интерфейса, компоненты
• Шаблоны, адаптивность, локализация
• Инструменты, сборка
44. Особенности
39
• Все данные имеют состояние
• При изменении данных создается дельта
изменений
• Механизм делегирования
• Объекты взаимодействуют через изменение
данных и состояния
• ...
56. Режимы
50
• Много файлов
• Ленивая подгрузка
• Оптимизируем
загрузку с помощью
basis server
Dev Production
• Один (обычно) js файл, в
котором весь код,
шаблоны и словари, один
CSS файл на тему
• Различные оптимизации
65. Другие фреймворки
57
• backbone.js – постоянно копирует поля,
отдельное событие для каждого
изменного поля
• knockout.js – создает слишком много
массивов, замыканий и других структур
• AngularJS – dirty check (глубокое
копирование и сравнение объектов)
66. Простые модели
58
backbone.js knockout.js basis.data
10 000 моделей c 5 полями
1 000 моделей с 50 полями
86 ms 160 ms 1 ms
3.3 MB 10.9 MB 0.3 MB
139 ms 220 ms 1 ms
1.3 MB 13.5 MB 0.1 MB
Время
Память
Время
Память