如何将 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