如何将indexedDB本地数据与Server同步?

时间:2012-10-21 18:47:45

标签: indexeddb

我有一个小项目,可以在浏览器中将数据存储在IndexedDB中。我想添加同步功能,以便用户可以随处访问数据。

如何在远程服务器或服务器数据库中同步本地IndexedDB数据,以便我可以在任何地方访问它?换句话说,我想在我的所有浏览器中提供this demo。 (此阶段的安全性不是问题)

1 个答案:

答案 0 :(得分:15)

事实上,IndexedDB上用于同步数据库的数量并不多。您只需要RESTful服务即可从服务器复制到客户端,反之亦然。

为了有效同步,服务应支持每个记录的etag(HTTP规范),更新(ATOM规范)集合。此外,为了支持可恢复更新,还需要totalResults,startIndex,itemsPerPage(OpenSearch规范)和更新排序。

当指定etag的记录'If-None-Match'标题时,为了获得完全缓存的好处,当指定Pudting记录'If-Match'标题以解决客户端的冲突时。要更新集合,查询受更新参数的限制,以便仅返回不在客户端数据库中的记录。

这就是我参与开源IndexedDB API包装器的方法。请参阅angularjs和https://github.com/yathit/feature-matrix中的示例应用demo

另见PouchDB