我正在考虑开发具有离线功能的网络应用。我正在考虑将所有客户端表单回发格式化为JSON对象,并将这些直接写入表单回发上的HTML5 LocalStorage。然后,我将有一个单独的进程,异步轮询LocalStorage for JSON条目并将这些条目提交给服务器。此服务器同步过程将没有任何UI上下文。然后,实际的用户UI可以非常敏感。 (我将使用缓存清单文件来处理其他脱机问题。)
这是一个合理的计划,异步JSON后期处理的最佳技术实现是什么? (可能是一个计时器,轮询LocalStorage并每秒检查服务器连接?)有没有更好的方法来实现服务器同步(如果我在服务器上实现这一点,我会写一个服务 - 是否有一个等效的javascript机制? )
感谢。
答案 0 :(得分:0)
去年我做了一些测试,让我们的应用离线运行,仅适用于HTML5浏览器。
该应用程序基于JSON服务,并使用我们的lib:pure.js呈现客户端。即使没有离线访问,您也可以使用类似的架构获得响应迅速的应用程序。
如果JSON服务调用失败,则认为我们处于脱机状态,而是使用本地存储。
当在线完成呼叫时,它会检查脱机队列的状态并在需要时进行同步。
但后来我开始在客户端上复制一些服务器验证逻辑。并发现存储的数据未加密。即使像javascrypt之类的东西,你也需要在某个地方使用密钥或设置密码密钥等等 那你对客户有什么看法?一切?最后查看的项目?如何处理数据更改冲突?
我敢打赌,今天的移动网络一般都是在线的,它可以让手机在移动设备上运行得更好,而不是试图让它脱机。我们暂时放弃了线下工作。< / p>
答案 1 :(得分:0)
最后我只使用了一个简单的setInterval,如下所示:
setInterval("SyncLocalStorageToServer()", 4000); // Loop at 4 second intervals
然后调用一个循环localStorage条目的函数,将每个条目依次发送到服务器。