1

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

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

谢谢。

4

2 回答 2

0

去年我做了一些测试来离线运行我们的应用程序,仅适用于 HTML5 浏览器。

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

如果 JSON 服务调用失败,则假定我们处于离线状态,并改为使用本地存储。
当在线完成呼叫时,它会检查离线队列的状态并在需要时进行同步。

但后来我开始在客户端复制一些服务器验证逻辑。并发现存储的数据没有加密。即使使用javascrypt之类的东西,您也需要某处的密钥或设置密码密钥等……
那么您对客户端保留什么?一切?最后查看的项目?如何处理数据更改冲突?

我敢打赌,今天的移动网络通常是在线的,让应用程序在移动设备上运行良好而不是试图让它离线更容易。
我们暂时放弃了线下工作。

于 2011-05-02T12:22:53.313 回答
0

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

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

然后调用一个函数,该函数围绕 localStorage 条目循环,依次将每个条目发送到服务器。

于 2011-05-03T18:12:57.387 回答