【发布时间】:2011-01-27 08:54:30
【问题描述】:
我正在寻找一个 javascript 库,它可以让我将数据存储在客户端数据库中,并在后台自动将数据库同步回服务器的数据库
最好是支持各种引擎的东西,就像 jStore for jQuery 一样
环顾四周,我可以找到任何东西
【问题讨论】:
标签: javascript database client-server data-storage data-synchronization
我正在寻找一个 javascript 库,它可以让我将数据存储在客户端数据库中,并在后台自动将数据库同步回服务器的数据库
最好是支持各种引擎的东西,就像 jStore for jQuery 一样
环顾四周,我可以找到任何东西
【问题讨论】:
标签: javascript database client-server data-storage data-synchronization
偶然发现了这个问题;为了后代,CouchDB 和 CouchBase 是为此而设计的:
JavaScript 客户端:
还有 CouchBase:
最后,CouchBase Lite/Mobile:
https://www.couchbase.com/products/lite
后者让您获得本地 CouchDB/CouchBase 同步。
在所有情况下,您只需访问本地数据库,它就可以在您连接到互联网时进行同步。
【讨论】:
Store.js 很好地处理了客户端存储。请注意,它支持 IE6+ 以及其他浏览器。对于服务器端存储,您不妨为此编写自己的脚本,因为它应该不难。
【讨论】:
自从提出这个问题以来,已经在本地存储和客户端数据库方面做了很多工作。
Dive Into HTML5 对本地存储选项有一个很好的概述。
还有几个可用的跨平台 JavaScript 存储库,包括 Lawnchair 和 persistence.js。
【讨论】:
我不是 100% 确定,但我认为没有这样的框架。我建议您查看Google Gears。
Google Gears 支持客户端的离线存储。
另一种方法是查看TidlyWiki 的源代码。他们创建了一个 wiki 系统,将所有数据存储在客户端。
【讨论】:
我不知道现在有任何图书馆这样做。即使很难,这也是一个可能的想法,我必须说我不确定制作这样的库是否是一项好的努力。
它必须提供如何向库公开服务器数据、如何计算增量等的示例。这将迫使开发人员根据库的协议更改此服务器端代码。 这对于新的应用程序和网站可能非常有用,但这对于任何具有特定数据结构的现有网站来说可能是一个痛苦,因此努力实现这一点并不比开发自己的 Javascript 来使用已经暴露的当前数据更可取应用程序。 除了潜在的安全问题之外,所有这些都很难在一个通用的 javascript 库中进行管理。
恕我直言,这是为特定的基于 ORM 的 MVC 框架(例如 Ruby on Rails 或 Django)制作捆绑包或插件的好主意。由于框架本身具有对数据结构的抽象,并且许多安全修复程序已经捆绑在一起,因此制作一个用于执行此操作的捆绑包将更加可重用且更优雅。
【讨论】:
我一直在做这方面的工作。似乎几乎可以使用 Google 文档。大多数 API 都可以通过 Javascript 访问。不幸的是,例外情况包括上传和下载等内容,因此虽然可以从浏览器内部枚举文档、创建文件、更改元数据等,但实际上获取数据要困难得多。
Google 电子表格确实具有用于访问单个单元格的 Javascript API,因此理论上可以将您的数据存储在电子表格中。不幸的是,API 中有另一个整体,似乎很难将数据写入以前没有数据的单元格,这意味着一旦您创建了空电子表格,就无法填充它......
【讨论】:
据我所知,Safari、Chrome 和 Opera 都基于 SQLite。 SQLite 有一个 .dump 命令,它不仅可以很好地恢复数据库,还可以与另一个数据库同步。 因此,可以使用 .dump 从 Javascript 数据库中调用它,如有必要,修改转储并上传到服务器数据库执行。
但是,您需要小心 SQL 注入尝试。
【讨论】:
你试过jsonengine吗?
不确定这个项目还有多少生命力,但这可以满足你的所有要求。
【讨论】:
jsonengine 是服务端 RESTful API 的实现。它提供了使用示例,将数据持久保存到服务器或客户端本地存储。但是,客户端-服务器同步没有做任何事情。
Firebase 会这样做,尽管它不是关系模型
【讨论】: