2011-01-28 23 views
19

Estoy evaluando Backbone.js para mantener sincronizados los datos y la IU en mi aplicación web. Sin embargo, gran parte del valor de Backbone parece residir en su uso de interfaces RESTful. Aunque puedo agregar copias de seguridad del lado del servidor en el futuro, mi caso de uso principal implica almacenar todos los datos fuera de línea utilizando el almacenamiento local HTML5.Uso de Backbone.js sin conexión

¿Existe un exceso de backbone para este caso de uso? De ser así, ¿hay una solución mejor, centrada únicamente en actualizar la UI cuando los datos cambian, y viceversa? (También estoy buscando en Knockout y Javascript MVC.)

EDITAR: También estoy buscando en Angular.js y jQuery Data Link.

Respuesta

28

Backbone.js funciona igual de bien con el almacenamiento local como lo hace con las consultas RESTful.

Soy un aprender-por-ejemplo tipo de persona así que aquí están algunos enlaces para empezar:

9

En las últimas semanas he evaluado una solución diferente para un escenario cercano al suyo; Al ser un proyecto realizado en mi tiempo libre personal y no ser un buen programador de Javascript, todo lo que necesitaba era algo fácil de aprender para evitar comenzar de cero.

No es de sorprender que tuviera el mismo candidato: Backbone.js, Javascript MVC y Knockout.js.

Backbone.js ganaron:

  • no estaba requerido a seguir las convenciones o reemplazar lo que ya estaba en su lugar
  • He hackeado fácilemte en su código base para entender lo que no estaba claro a partir la documentación
  • he ignorado con éxito una gran cantidad de sus características que no era interesante para mí
  • Se dio un rendimiento aceptable en las páginas ocupadas
  • funciona

Backbone.js es liviano y relativamente magic-free; probablemente usará un pequeño subconjunto de su función, pero ofrece una base sólida para desarrollar su solución.

1

También puede consultar AFrameJS. He creado una escueta prueba de concepto note-taking app que funciona sin conexión usando la especificación HTML5 WebSQL, pero también quiero crear un adaptador que use localStorage también. Mi opinión personal (y estoy predispuesto) es que el uso de una biblioteca de MVC de cualquier tipo te ayudará a largo plazo: el valor de las bibliotecas como Backbone, Knockout y AFrame radica en su capacidad para reducir la carga cognitiva de el desarrollador imponiendo una buena separación de preocupaciones. La funcionalidad relacionada con los datos reside en los modelos, que muestra que los datos se encuentran en Vistas, y el pegamento se mantiene en Controladores.La separación de estos tres conceptos puede parecer pedante al principio, pero el resultado final es un código que es más fácil de desarrollar, más fácil de probar, más fácil de mantener y más fácil de reutilizar. Un tutorial básico sobre el uso de AFrameJS se puede encontrar en mi sitio en: http://www.shanetomlinson.com/2011/aframejs-tutorial-for-noobs/