Модели в фреймворках Javascript - PullRequest
1 голос
/ 17 февраля 2012

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

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

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

Ответы [ 3 ]

3 голосов
/ 17 февраля 2012

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

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

2 голосов
/ 18 февраля 2012

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

Платформы JS являются хорошими решениями, если:

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

Существует много шумихи над js-фреймворками и инструментами, так что в целом этоХорошая идея - изучить их - хотя это и не является тривиальным делом.

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

2 голосов
/ 17 февраля 2012

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

...