Какой фреймворк Javascript лучше всего подходит для этой ситуации? - PullRequest
1 голос
/ 20 ноября 2011

Я хочу создать список контактов в js, но существует так много технологий js, как backbone.js, spine.js, knockout.js и т. Д., Что я не знаю, какой из них лучше для меня.

Мои контакты имеют несколько общих типов: FacebookUser, User и UserList.Подвох со списком пользователей состоит в том, что это набор пользователей или списков пользователей.Кроме того, он сам может иметь или не иметь собственную контактную информацию (например, компанию или команду).

Я хочу отобразить этот список в древовидном представлении, где вы можете углубиться в UserList (и лениво загружать членов группы).

Наконец, весь список контактов является экземпляром.Я имею в виду, что у вас в одном и том же окне одновременно открыто 0– n списков контактов.

Какую инфраструктуру мне следует использовать в этой ситуации?

Ответы [ 2 ]

4 голосов
/ 20 ноября 2011

Все три упомянутые вами библиотеки (backbone.js, spine.js, knockout.js) предназначены для одностраничных браузерных приложений.

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

Если мое понимание вашей цели верное, я бы выбрал jQuery или YUI.Упомянутые вами библиотеки будут излишними.

Добавлено YUI имеет красивый древовидный виджет , который поддерживает отложенную загрузку веток.Я использую его для этого.

Если вы решите использовать слой модели, YUI 3 включает в себя Model и ModelList .Они основаны на API Backbone.

Re: комментарий MVC В комментарии OP упоминает «несколько представлений на одних и тех же данных, изменение распространения и обнаружение редактирования (если пользователь изменяет»).номер) и обновления с сервера "

В этих случаях, да, в наши дни многие крутые дети используют полную версию MVC в самом браузере.Если вы хотите пойти в этом направлении, вы можете использовать любой из трех упомянутых вами.Примечания:

  • Магистральная сеть и, вероятно, две другие, не предоставляют полный MVC.Скорее, Backbone поставляет части модели и контроллера, особенно модель.Обычно для просмотра используется Усы .Кроме того, обычно используется подчеркивание или jQuery для предоставления основных средств.Если вы используете Google для примеров магистральных сетей, многие из них включают jQuery.

  • Оформить заказ YUI new y.App .Он включает в себя все части MVC в одной хорошо документированной библиотеке.y.App находится в стадии разработки и основан на API Backbone.A видео-ролик

  • MVC Каркасы в браузере совершенно новые.Не удивляйтесь быстрому изменению библиотечного кода, непоследовательности документов, нескольких примеров и т. Д. Вам также следует рассмотреть возможность документирования и публикации своих исследований.Для дополнительного кредита, сделайте это хорошо работает на мобильных браузерах.

  • 49 Ходят слухи, что Signals работает на платформе MVC на стороне браузера, но мы еще ничего не видели.

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

  • Исходя из моего опыта работы с YUI, их Y.app получит больше всегопоследовательный и полный набор API и лучшие документы.

0 голосов
/ 21 ноября 2011

Если мы возьмем ваш конкретный случай, я настоятельно рекомендую Knockout.js

Knockout создан для пользовательского интерфейса, т. Е. Ваша модель данных может быть связана с элементами HTML, а затем любые изменения в модели воздействуют на пользовательский интерфейс.соответственно.

В вашем случае добавление / удаление в список контактов будет автоматически выполнено Knockout.Все, что вам нужно, это определить, как будут обрабатываться изменения в древовидном представлении (либо с помощью кода, либо с помощью шаблонов HTML), и Knockout позаботится об этом.

Сказав это, определите древовидное представление вашегосписок контактов - это совсем другая задача, и вам может понадобиться использовать библиотеку CSS / JS для этого.

...