如何同步 HTML5 本地/webStorage 和服务器端存储? [复制]
Posted
技术标签:
【中文标题】如何同步 HTML5 本地/webStorage 和服务器端存储? [复制]【英文标题】:How to synchronize HTML5 local/webStorage and server-side storage? [duplicate] 【发布时间】:2011-02-07 12:49:12 【问题描述】:可能重复:Best way to synchronize local html5 DB (WebSQL Storage, SQLite) with a server (2 way sync)
我目前正在寻找在客户端 HTML5 localStorage 或网络存储和(可能是多个)服务器端存储之间透明和自动同步和复制的解决方案(这里唯一的要求是它应该简单且价格合理安装在常规托管服务上)。
那么,您是否对此类提供数据存储的库/技术有任何经验,这些数据存储可自动实现客户端-服务器存储同步,并允许数据离线或在线或两者都可用?我认为这是支持离线模式的 Web 应用程序的一个相当常见的场景......
【问题讨论】:
只有一台服务器和一台客户端的同步问题非常困难,但是如果考虑到多个客户端(桌面/移动)和多个服务器,则变得更加困难。也就是说,我很想知道您是否找到任何库、解决方案或只是简单的基本想法来执行此操作。干杯! 【参考方案1】:Firebase 将此功能作为服务提供。 另一种选择是Parse。
【讨论】:
【参考方案2】:this question 非常相似。
那里,'快速连接' - http://quickconnect.pbworks.com/Using-Enterprise-Synchronization 和我个人最喜欢的 'persistenceJS' - https://github.com/zefhemel/persistencejs 被推荐。
一旦我收集到个人经验,我会更新这篇文章。
【讨论】:
你收集个人经验了吗? 我实际上最终基于backbone.js编写了自己的解决方案 你开源了吗?可以分享给我们吗? 它不是通用的。如果远程到本地同步是您所追求的,请查看backbone.js。如果您的服务器通过 REST API 公开其数据(“越纯”越好),它可能会满足您的需求。 TumbleCow 你能把你的代码贴在 git/上吗【参考方案3】:我刚刚发现了一个全新的框架:Impel.inTouch。它的模式定义似乎有点不方便,但绝对值得一试。
【讨论】:
具有讽刺意味的是,我在提供赏金后发现了这个答案。 :D 不幸的是,Impel 不再受支持 - 目前存在的仅适用于 MooTools。【参考方案4】:这取决于你想要什么。 http://hacks.mozilla.org/2010/01/offline-web-applications/ 有一个很棒的教程可以帮助您入门 除非您想做一些复杂的事情,否则您不需要那么多框架来为您完成它。我想您可以使用 jQuery 在客户端上保存几行代码。您基本上希望在您的商店中记录最后一次更改商店的时间,最后一次更新服务器的时间,并使用在 XHR 中发送编码为 JSON 的 localStorage 变量(或只是本地的位您要发送的商店)。然后,在服务器上,您可以解码 JSON 并使用它做您想做的事情、处理它或仅使用 php 的序列化将其转储到数据库。
如果您有什么特别的想法,请务必提及。
【讨论】:
感谢您的精彩文章!精彩地展示了相关API的原理和用法。但是,它只显示了一个非常具体的子案例的手动解决方案。正如 Anurag 所说,当并发、双向同步、错误处理等出现时,事情很快变得不平凡。这就是为什么我正在寻找一种更受管理的方式。 更详细的数据同步文章:ibm.com/developerworks/library/wa-html5db/index.html以上是关于如何同步 HTML5 本地/webStorage 和服务器端存储? [复制]的主要内容,如果未能解决你的问题,请参考以下文章