离线/在线数据同步设计(Javascript)

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (160)

我目前正在编写一个脱机web应用程序,使用所有的html5好东西来提供脱机支持。不过,我现在开始考虑编写同步模块,以确保将任何脱机数据发送到服务器和服务器数据返回给客户端。现在我确信这已经完成了,我的意思是它是一个非常经典的设计问题,会影响移动设备和其他许多事情。所以我想知道任何人都可以为我指出一些很好的设计资源吗?

现在我真的不需要太复杂,我的意思是我没有处理多个用户访问相同的数据,我很高兴不合并冲突(只是采取最新的),但我仍然希望有一个设计,将请允许我将来使用这些选项。

提问于
用户回答回答于

我有类似的问题。我决定使用纯粹的JSON进出方法。我正在提交表单提交的解决方案是:

  1. 抓住表单提交事件
  2. 检查用户是否在线
  3. 如果用户在线,则以普通表单POST的形式提交表单
  4. 如果用户处于脱机状态,则将JSON请求字符串化并将其存储在本地(我决定使用Web SQL数据库)。队列表就是Uri和Payload。

然后,我为全球的在线/离线事件提供全局事件挂钩。当用户重新联机时,它会检查队列,如果队列中有项目,则会以JSON POST请求的形式发送它们。

如果您主要想获取 JSON数据并将其缓存为离线使用,请查看jquery.offline

双向同步的挑战在于,您需要使用任何已排队的CRUD工作来更新本地缓存列表。

我想找到一个更通用的方法来做到这一点。

用户回答回答于

我对类似设计(尚未尝试)的计划是使用像PouchDB这样的方式在本地存储数据,然后将其与远程沙发实例同步。

扫码关注云+社区