borNfree
@borNfree
PHP developer

Какой выбрать MV* Javascript framework по заданным условиям?

Добрый день.
Предисловие:
Сравнительный обзор почитал на Хабрахабре и на других сторонних сайтах, todomvc.com просмотрел, но т.к. именно с JS решениями опыта нет, то не могу определиться.

Нужна помощь в выборе JS framework'a для написания следующего одностраничного приложения (пример утрированный для понимания сути):
1. RESTful API
2. Есть на странице календарь, на каждый день можно создавать сущности (события), которые собственно и содержатся в БД, и с которыми основная работа ведётся.
3. Календарь можно пролистывать в любую сторону, в любом дне создавать сколько угодно сущностей, при этом все должно моментально синхронизироваться с сервером.
4. Кроме работы с Календарем и сущностями по дням, другой функционал минимален (страница настроек и пару диалоговых окон)

То есть мы имеем 1 таблицу для необходимых сущностей, допустим Events. И одну таблицу Users.

Пока остановил свой выбор на Backbone.js. Не оверкилл ли это?

Еще важный момент: в просмотренных примерах после загрузки страницы Backbone GET запросом инициализирует свои модели. Можно ли инициализировать его массивом без дополнительного запроса, встраивая его (массив) при загрузке в код страницы. Если да - нормально ли это?
Спасибо.
  • Вопрос задан
  • 3157 просмотров
Решения вопроса 1
По личному опыту реализации Rich-frontend'ов могу сказать что тут есть несколько важных моментов про которые частенько забывают - в backbone-подобных фреймворках часто наблюдаются утечки памяти при интенсивных загрузках / обновлении контента. Был опыт реалзизации проектов где "все в одном JS и html файлике" в буквальном смысле, с обновлением контента в реальном времени через socket.io... и там утечки памяти были основной проблеммой.

Пробовал knockout, ember, meteor, spine, backbone... но вот лучше всех себя в этом плане показал Angular, хотя принципы и скорость рендеринга в нем пока что оставляют желать лучшего. Есть на свете минимум 2-3 форка (ремейка) backbone которые призваны спасти своего прародителя от утечек.

Из истории: twitter как-то реализовал весь свой сервис подобным образом, через время им пришлось разбить все постранично, что бы форсировать сборку мусора.

Вот в rest интерфейсах меня больше всего сейчас волнует отсутствие нормальной поддержки http кеширования - поддержки тегов if-modified-since, и etags.
Из того что есть ... есть restangular и он очень сырой. Встроенный в angular resource модуль, пока очень сильно порезан, и ему конкретно не хватает фич, но для ваших задач должно хватить.

Не уверен что angular будет оправданным выбором в случае с single-page, возможно стоит взглянуть в сторону spine + handlebars / jade.

Некоторые жалуются на высокий порог вхождения angular, хотя мне показалось что там все довольно просто и документация довольно хороша. Он мне показался даже проще Backbone. Но на вкус и цвет...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@gonza

-

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы