2011-05-02 111 views
1

我正在考虑开发具有离线功能的Web应用程序。我正在考虑将所有客户端表单回发格式化为JSON对象,并将这些直接写入表单回传中的HTML5 LocalStorage。然后,我将有一个单独的进程异步轮询LocalStorage以获取JSON条目并将其提交给服务器。此服务器同步过程不会有任何UI上下文。实际的用户界面可以非常灵敏。 (我将使用缓存清单文件来处理其他离线问题)。异步客户端JavaScript进程与服务器交谈

这是一个合理的计划,什么是异步JSON后处理的最佳技术实现? (也许是一个计时器,轮询LocalStorage和每秒钟检查服务器连接?)是否有更好的方法来实现服务器同步(如果我在服务器上实现这一点,我会写一个服务 - 是否有一个等效的JavaScript机制? )

谢谢。

回答

0

最后我只是用一个简单的setInterval,如下所示:

setInterval("SyncLocalStorageToServer()", 4000); // Loop at 4 second intervals 

,然后调用绕一圈localStorage的条目,每发送一个轮流到服务器的功能。

0

去年我做了一些测试,只在HTML5浏览器上离线运行我们的应用程序。

该应用程序基于JSON服务,并使用我们的lib:pure.js呈现客户端。即使没有离线访问,您也可以使用类似的架构获得响应速度非常快的应用。

如果JSON服务调用失败,则认为我们已脱机,而是使用本地存储。
当联机完成呼叫时,它会检查脱机队列的状态并根据需要进行同步。

但后来我开始复制客户端上的一些服务器验证逻辑。并发现存储的数据未加密。即使有像javascrypt这样的东西,你需要某个地方的密钥或设置密码密钥等......
那么你对客户端有什么保留?一切?最近查看过的项目?如何处理数据更改冲突?

我敢打赌,在今天的移动网络中,一般情况下,移动网络都是在线的,但更容易使应用在移动设备上运行良好,而不是试图使其脱机。
我们现在放弃了我们的离线工作。

+0

感谢您的信息。 – Journeyman 2011-05-04 13:35:45