JavaScript库用于客户端存储与服务器端同步。

18
我正在寻找一个JavaScript库,可以让我将数据存储在客户端数据库中,并在后台自动将数据库同步回服务器的数据库。最好支持各种引擎,就像jQuery的jStore一样。但是我还没有找到合适的库。
9个回答

5

3

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


2
根据它们的文档:“store.js在可用时使用localStorage,并在IE6和IE7中回退到userData行为”。它不会存储到Web SQL数据库或IndexedDB。此外,它对数据同步什么也没做。 - Julien Kronegg

3
自从这个问题被提出以来,本地存储和客户端数据库方面已经做了很多工作。
Dive Into HTML5中有一个很好的本地存储选项概述。
还有几个跨平台的JavaScript存储库可用,包括Lawnchairpersistence.js

1

我不是100%确定,但我认为没有这样的框架。我建议看看Google Gears

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

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


1
离线存储并不像以前那么困难,现在有一些库支持Gears、HTML5本地数据库和Flash。原始问题更多关于与服务器的后台同步(在线时)。 - Javier
1
此外,Google Gears 将被废弃。 - Henrik Hansen

1

我不知道现在是否有任何库可以做到这一点。虽然这是一个可能的想法,但我必须说我不确定制作这样的库是否值得努力。

它将不得不提供如何将服务器数据公开给库、如何计算增量等示例。这将迫使开发人员相应地更改服务器端代码以符合库的协议。 这对于新的应用程序和网站可能很好,但对于任何具有特定数据结构的现有站点来说,这可能会带来痛苦,因为实施这个功能并不比使用当前已经公开的数据自己开发JavaScript更可取。 所有这些加上潜在的安全问题将很难在一个通用的JavaScript库中进行管理。

在我看来,这是一个很好的想法,可以为特定ORM基于MVC框架(例如Ruby on Rails或Django)制作捆绑包或插件。由于框架本身具有对数据结构的抽象和许多安全修复已经捆绑在一起,因此制作一个捆绑包来完成这项工作将更具可重用性和更优雅。


0
据我所知,Safari、Chrome和Opera都基于SQLite。 SQLite有一个.dump命令,不仅可以用于恢复数据库,还可以与另一个数据库同步。 因此,可能可以通过使用.dump从Javascript数据库调用它,并在必要时修改转储并上传到服务器数据库以执行。
但是,您需要小心SQL注入攻击。

你能从Javascript访问.dump文件吗? - oivvio
这看起来非常适合本地数据库备份,但对于CRUD操作(例如可扩展性)而言不太可用。 - Julien Kronegg

0
你试过jsonengine了吗?
不确定这个项目还有多少活力,但它可以满足你的所有需求。

据我所了解,jsonengine 是一个服务器端 RESTful API 的实现。它提供了使用示例,可以将数据持久化到服务器或客户端本地存储中。然而,它并没有为客户端和服务器之间的同步做任何事情。 - Julien Kronegg

0
Firebase可以实现这一点,尽管它不是一个关系模型。

0

我一直在研究这个问题。使用Google文档似乎几乎可以实现。大多数API都可以通过Javascript访问。不幸的是,其中的例外包括上传和下载等内容,因此虽然可以从浏览器内部枚举文档、创建文件、更改元数据等,但实际上获取数据要困难得多。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接