2012-02-17 3 views
1

Я начал создавать веб-службу в Ruby on Rails. Через некоторое время я обнаружил некоторые удивительные JavaScript рамки:Модели в Javascript Frameworks

  • Backbone
  • KnockoutJs
  • SproutCore
  • BatmanJs
  • и т.д ..

делает что рамки JS сохраняет информацию пользователя в базе данных (Модель?) И являются ли они хорошим решением для создания веб-приложения, предназначенного для пользователей?

ответ

2

Короткий ответ: да, структуры JS сохраняют данные в моделях.

рамки JS хорошие решения, если:

  • вы способны использовать их - гораздо сложнее, чем прямой RoR!
  • вы применить их к правильной задаче (например: сложные оболочки, в реальное время взаимодействия)

Там много шумихи над Js рамок и инструментами, так что в целом это хорошая идея, чтобы узнать их - хотя предприятие не является тривиальным.

Чтобы ответить на ваш вопрос, сначала сначала вам нужно Ruby рядом с JS для создания значимых приложений. Тем не менее, backbone.js и другие будут сохранять данные в модели путем передачи объекта json ресурсу RoR, который, в свою очередь, сохраняет данные на бэкэнд (SQL или noSQL). Таким образом, ваши модели JS будут сохранять данные, и вам также нужны модели RoR для работы (которые могут быть простыми и единственными, например, предоставлять базу данных в виде http (-ов) ресурсов).

2

Они представляют собой чисто клиентские рамки. Это означает, что они отображают данные только пользователю и управляются в браузере. Никакие изменения не будут автоматически перенесены в базу данных. Вам нужно создать какую-нибудь кнопку сохранения, которая будет POST-данные обратно на ваш сервер, где она будет обрабатываться, проверена и сохранена в любой требуемой базе данных.

3

В рамках, которые вы упомянули, обычно хранятся представления ваших данных в память как модели. Чтобы данные, сохраненные в базе данных, должны были управлять связью между каркасом и моделями вашего сервера. Backbone использует RESTfull http-запросы. Если вы хотите, вы можете переписать Backbone.sync, чтобы настроить синхронизацию с моделями, управляемыми вашим сервером.

Они очень хорошие решения для создания веб-приложений, однако для небольших проектов они могут быть излишними. Несмотря на то что существуют различия между фреймворками, которые вы упомянули (например, SproutCore, который теперь называется emberjs, заставляет вас придерживаться своего стиля много, Backbone позволяет вам решить больше), то, что они на самом деле делают, это помочь вам структурировать проект javascript.

+0

только для уточнения, ember.js теперь представляет собой отдельный каркас от Sproutcore, который все еще разрабатывается. – hvgotcodes

+0

справа, спасибо за разъяснение – joidegn