如何将 indexedDB 本地数据与服务器同步?

Posted

技术标签:

【中文标题】如何将 indexedDB 本地数据与服务器同步?【英文标题】:How to sync indexedDB local data with Server? 【发布时间】:2012-10-11 15:29:40 【问题描述】:

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

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

【问题讨论】:

看看这个类似的问题:***.com/questions/12914646/… 【参考方案1】:

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

为了有效同步,服务应该支持每条记录的 etag(HTTP 规范),以及集合的更新(ATOM 规范)。此外,为了支持可恢复更新,totalResults、startIndex、itemsPerPage (OpenSearch 规范) 和按更新排序是必要的。

当 GET 指定 etag 的记录“If-None-Match”标头时,为了获得完整的缓存优势,当 PUT 指定记录“If-Match”标头以解决客户端冲突时。更新集合,查询受更新参数的限制,因此只返回不在客户端数据库中的记录。

这就是我在我的开源 IndexedDB API 包装器上实现的方式。请参阅 angularjs 和 demo 中的示例应用程序 https://github.com/yathit/feature-matrix。

另请查看PouchDB。

【讨论】:

以上是关于如何将 indexedDB 本地数据与服务器同步?的主要内容,如果未能解决你的问题,请参考以下文章

循环内的承诺:TypeScript + Angular + IndexedDB

IndexedDB(一:基本使用)

将本地db(Sqlite)与服务器db android同步

如何将图像从本地同步到 Web 服务器?所以我可以在设备上看到它们

如何正确同步解析与本地数据存储?

OrientDB - 将本地数据库与远程数据库同步