如何在主干应用程序中保护不正常的互联网连接?有没有像《流星》那样的解决方案



我正在构建在教育环境中的触摸屏上使用的应用程序。应用程序从用户输入中收集数据。然后将数据发送到服务器。有多个单元,虽然精确的同步不是最重要的,但收集的数据(以及从其他来源收集的其他数据)将被合并并分发回触摸屏应用程序。

应用程序是在Backbone中构建的,初始数据是从单个JSON文档加载的。JSON文档从远程MySQL数据库解析,在初始化时下载(连同资产一起)。

在可能的情况下,应用程序应该将新数据发送回远程mySQL DB,一旦它被收集,这可能并不总是可能的,我需要收集数据,以便在我可以的时候发送它。

我的第一个想法是将所有内容存储在本地存储并尽可能同步(每次成功同步发生时清除本地存储)是要走的路。

在银行假期周末,我一直在玩meteor.js,我想也许如果我写我的本地存储解决方案,我将重新发明轮子,一个棘手的轮子。似乎Meteor.js有一种模仿离线数据库的方法,以伪造即时更新。

我的问题是:我如何使用类似的技术来添加一些离线保护?是否有一个JS框架,或骨干插件,我可以利用,或一种技术,我可以进入?

您可以使用Backbone。当连接离线时,将您的模型和集合保存到本地存储。

检测用户是否离线就像注意到xhr请求失败一样简单。(https://stackoverflow.com/a/189443/1448860e) .

将两者结合。

  1. 当您怀疑用户离线(ajax请求到您的后端没有得到响应),切换骨干。localStorage并将所有内容存储在那里。通知用户!
  2. 当用户再次获得互联网连接时,保存从localStorage到服务器的任何更改。再次通知用户!

瞧!

最新更新