Respuesta

1

Iam no es 100% seguro, pero creo que no hay una tal marco. Yo recomendaría echar un vistazo en Google Gears.

Google Gears admite el almacenamiento sin conexión en el lado del cliente.

Otro enfoque sería verificar el código fuente de TidlyWiki. Han creado un sistema wiki que almacena todos los datos del lado del cliente.

+1

el almacenamiento fuera de línea no es tan difícil como lo era antes, hay algunas bibliotecas que admiten Gears, HTML5 local DB y flash. la pregunta original es más acerca de la sincronización de fondo con el servidor (cuando está en línea) – Javier

+1

Además, Google Gears se está descartando. –

1

No tengo conocimiento de ninguna biblioteca que lo haga hoy en día. Aunque esta es una idea posible, debo decir que no estoy seguro de si hacer una biblioteca así es un buen esfuerzo.

Tendría que proporcionar ejemplos de cómo exponer los datos de su servidor a la biblioteca, cómo calcular deltas, y más. Esto obligaría al desarrollador a cambiar este código del lado del servidor de acuerdo con el protocolo de la biblioteca. Esto podría ser genial para nuevas aplicaciones y sitios web, pero esto podría afectar a cualquier sitio existente, con una estructura de datos particular, haciendo que el esfuerzo de implementar esto no sea tan preferible a desarrollar su propio Javascript para hacerlo con datos actuales ya expuestos por la aplicación. Todos estos además de posibles problemas de seguridad serían algo difíciles de gestionar en una biblioteca genérica de JavaScript.

En mi humilde opinión, esta es una gran idea para hacer paquetes o complementos a marcos MVC específicos basados ​​en ORM, por ejemplo, Ruby on Rails o Django. Dado que el marco en sí tiene una abstracción de la estructura de datos y muchas soluciones de seguridad ya agrupadas, hacer un paquete para hacerlo sería mucho más reutilizable y más elegante.

0

He estado trabajando en esto. Parece ser casi posible usando Google Documents. La mayoría de las API son accesibles a través de Javascript. Desafortunadamente, las excepciones incluyen cosas como cargar y descargar, así que mientras es posible enumerar documentos, crear archivos, cambiar metadatos, etc. todo desde el interior del navegador, obtener los datos es mucho más difícil.

Las hojas de cálculo de Google tienen API de Javascript para acceder a celdas individuales, por lo que teóricamente es posible almacenar sus datos en una hoja de cálculo. Desafortunadamente hay otro todo en la API donde parece ser bastante difícil escribir datos en una celda que previamente no tenía datos, lo que significa que una vez que haya creado su hoja de cálculo vacía, no podrá llenarla ...

3

Store.js lidiar muy bien con el almacenamiento del lado del cliente. Tenga en cuenta que es compatible con IE6 + junto con otros navegadores. Para el almacenamiento del lado del servidor, también puede hacer su propia secuencia de comandos para eso, ya que no debería ser difícil.

+2

De acuerdo con su documentación: "store.js usa localStorage cuando esté disponible, y recurre al comportamiento userData en IE6 e IE7". No almacena en Web SQL Database o IndexedDB. Tampoco hace nada por la sincronización de datos. –

0

Por lo que sé Safari, Chrome y Opera, todos basados ​​en SQLite. SQLite tiene un comando .dump que no solo es ideal para restaurar una base de datos sino para sincronizar con otra base de datos. Por lo tanto, es posible llamar esto desde la base de datos de Javascript utilizando .dump y, si es necesario, modificar el volcado y cargarlo en la base de datos del servidor para su ejecución.

Sin embargo, deberá tener cuidado con los intentos de inyección de SQL.

+0

¿Puede acceder a .dump desde Javascript? – oivvio

+0

Esto se ve muy bien para la copia de seguridad de la base de datos local, pero esto no es utilizable para operaciones CRUD (por ejemplo, escalabilidad). –

3

Desde que se hizo esta pregunta, se ha trabajado mucho en el almacenamiento local y las bases de datos del lado del cliente.

Hay una gran descripción general de las opciones de almacenamiento local en Dive Into HTML5.

También hay varias bibliotecas de almacenamiento JavaScript multiplataforma disponibles, incluidas Lawnchair y persistence.js.

0

¿Has probado jsonengine?

No estoy seguro de cuánto este proyecto está vivo, pero esto responde a todos sus requisitos.

+0

Por lo que he entendido, 'jsonengine' es una implementación de la API RESTful del lado del servidor. Proporciona ejemplos de uso que conservan los datos en el servidor o en el almacenamiento local del cliente. Sin embargo, no se hace nada por la sincronización cliente-servidor. –

0

Firebase hace esto, aunque no es un modelo relacional

1

Sólo encontré con esta pregunta; para la posteridad, CouchDB y Couchbase están diseñados para esto:

http://couchdb.apache.org/

El cliente JavaScript:

https://pouchdb.com/

Y Couchbase:

https://www.couchbase.com/

Por último, Couchbase Lite/Móvil:

https://www.couchbase.com/products/lite

Este último obtiene su sincronización nativa de CouchDB/CouchBase.

En todos los casos, solo tiene acceso a la base de datos local y puede sincronizar si se conecta a Internet y cuándo.

Cuestiones relacionadas