用于客户端存储和服务器端同步的javascript库

用于客户端存储和服务器端同步的javascript库,javascript,database,client-server,data-storage,data-synchronization,Javascript,Database,Client Server,Data Storage,Data Synchronization,我正在寻找一个javascript库,它可以让我将数据存储在客户端数据库中,并在后台自动将数据库同步回服务器的数据库 最好是像jQuery的jStore那样支持多种引擎 环顾四周,我能找到任何东西,我不是100%确定,但我认为没有这样的框架。我建议你去看看 Google Gears支持客户端的离线存储 另一种方法是检查的源代码。他们创建了一个wiki系统,将所有数据存储在客户端 我不知道现在有哪家图书馆这样做。即使这是一个可能的想法,我必须说,我不确定建立这样的图书馆是否是一个好的努力 它必须提

我正在寻找一个javascript库,它可以让我将数据存储在客户端数据库中,并在后台自动将数据库同步回服务器的数据库

最好是像jQuery的jStore那样支持多种引擎


环顾四周,我能找到任何东西,我不是100%确定,但我认为没有这样的框架。我建议你去看看

Google Gears支持客户端的离线存储


另一种方法是检查的源代码。他们创建了一个wiki系统,将所有数据存储在客户端

我不知道现在有哪家图书馆这样做。即使这是一个可能的想法,我必须说,我不确定建立这样的图书馆是否是一个好的努力

它必须提供如何向库公开服务器数据、如何计算增量等示例。这将迫使开发人员根据库的协议更改此服务器端代码。 这对于新的应用程序和网站来说可能是件好事,但对于任何现有的具有特定数据结构的网站来说,这都可能是一件痛苦的事情,因此,与开发自己的Javascript来处理应用程序已经公开的当前数据相比,努力实现这一点并不可取。 所有这些加上潜在的安全问题,在一个通用javascript库中管理起来有点困难


IMHO这是一个很好的想法,可以为特定的基于ORM的MVC框架(例如rubyonrails或Django)制作捆绑包或插件。由于框架本身对数据结构有一个抽象,并且许多安全修复程序已经捆绑在一起,因此制作一个捆绑包将更加可重用和优雅。

我一直在做一些这方面的工作。使用谷歌文档似乎几乎是可能的。大多数API都可以通过Javascript访问。不幸的是,例外情况包括上传和下载,因此虽然可以从浏览器内部枚举文档、创建文件、更改元数据等,但实际上获取数据要困难得多


谷歌电子表格确实有用于访问单个单元格的Javascript API,因此理论上可以将数据存储在电子表格中。不幸的是,API中还有另一个整体,似乎很难将数据写入以前没有数据的单元格,这意味着一旦创建了空的电子表格,就无法填充它…

很好地处理客户端存储。请注意,它支持IE6+和其他浏览器。对于服务器端存储,您也可以编写自己的脚本,因为这应该不难。

据我所知,Safari、Chrome和Opera都基于SQLite。 SQLite有一个.dump命令,它不仅适用于恢复数据库,而且适用于与另一个数据库同步。 因此,可以使用.dump从Javascript数据库调用它,如有必要,修改转储并将其上载到服务器数据库以执行


但是,您需要小心SQL注入尝试。

自从提出这个问题以来,在本地存储和客户端数据库方面做了大量工作

在上有关于本地存储选项的详细概述

还有几个跨平台JavaScript存储库可用,包括和。

您尝试过吗


不确定这个项目有多活跃,但这满足了您的所有要求。

Firebase做到了这一点,尽管它不是一个关系模型

刚刚偶然发现了这个问题;为了子孙后代,CouchDB和CouchBase的设计宗旨是:

JavaScript客户端:

和CouchBase:

最后,CouchBase Lite/Mobile:

后者可以实现本地CouchDB/CouchBase同步


在任何情况下,您都只需访问本地数据库,当您连接到internet时,它就可以进行同步。

脱机存储不像以前那么难了,有些库支持Gears、HTML5本地数据库和flash。最初的问题更多的是关于与服务器的后台同步(在线时),Google Gears也被删除。你能从Javascript访问.dump吗?这对于本地数据库备份来说很好,但对于CRUD操作(例如可伸缩性)来说是不可用的。据我所知,
jsonegine
是服务器端RESTful API的实现。它提供了将数据持久化到服务器或客户端本地存储的使用示例。然而,客户机-服务器同步没有做任何事情。根据他们的文档:“store.js在可用时使用localStorage,并依赖于IE6和IE7中的userData行为”。它不存储到Web SQL数据库或IndexedDB。此外,它对数据同步也没有任何作用。