5

我需要能够离线运行 HTML 表单。我的意思是他们必须在没有直接连接到 Web 服务器的情况下工作。

在我 5 年前编写的一个应用程序中,我通过实现一个自定义协议处理程序来做到这一点 - 当用户启动表单提交时,生成的 HTTP 请求被记录在本地。稍后,当与服务器的连接可用时,同步程序循环收集的请求并将它们提交给服务器,收集响应并再次将它们保存在本地以供以后使用。

那时就是这样。现在,另一位客户向我提出了非常相似的要求。你们认为我今天应该使用什么技术?

对 HTML5 的支持还非常有限。谷歌齿轮?还是我应该回去继续使用协议处理程序和自定义同步器?

4

5 回答 5

4

我会说去HTML5。并非所有浏览器都支持它;但所有人都会。同时,我认为最好说“要获得离线功能,试试这样或那样的浏览器”,而不是“请下载这个带有很多可怕警告的巨大插件”。

还有一个简单的人口统计数据:HTML5 占所有浏览器的 5%?10%?仍然比已安装 Gears 的 0% 用户多得多。

真的很遗憾,非常感谢 Google 推动 Gears 的发展;但在野外,唯一普遍接受的插件是 Flash。幸运的是,HTML5 几乎已经存在,具有几乎相同的功能。

于 2009-11-26T21:42:03.383 回答
2

Google Gears 是一个非常好的候选者——例如,Google 最近刚刚宣布用户将能够在“离线”时将文件附加到电子邮件中。另一种方法可能是将发布的表单数据存储在 cookie 中,当用户能够重新联机时,服务器会使用它来获取 cookie 和数据。

于 2009-11-26T21:16:59.687 回答
2

谣言四处流传,Google Gears 不再处于开发阶段。当您在http://code.google.com/p/gears/issues/list?can=2&q=&sort=version&colspec=Version%20Milestone%20Owner%20ID%20Summary%20Component查看齿轮功能和问题跟踪器时新的 Gears 开发,只有 3 个项目将在 0.6 版中修复。另外,根据这篇维基百科文章(http://en.wikipedia.org/wiki/Google_Gears),谷歌似乎没有做任何开发,开源项目也没有太多的动力。摘自文章是这样的:

“在 2009 年 11 月下旬,许多在线新闻来源报道说,谷歌将在未来迁移到使用 HTML 5 而不是 Gears。谷歌发言人后来澄清说,谷歌将继续支持 Gears,以免破坏使用它的网站。”

换句话说,Gears 已被弃用。请改用 HTML 5。

于 2010-01-01T18:09:10.170 回答
1

Dojo.Storage/ Dojo Offline,有一个闪存桥,使您能够使用闪存的数据存储来存储数据。限制是用户设置的,但从 5Mb 开始。库组件是一种抽象,还支持 HTML 5、cookie 和 gears。

如果有记忆,Plus gears 将允许您存储二进制 blob。

于 2009-11-27T10:01:36.000 回答
1

谷歌齿轮已死: http: //gearsblog.blogspot.com/2011/03/stopping-gears.html

您最好的选择可能是 applicationCache 和 localStorage 的 HTML5 标准的组合。

但是,应谨慎使用 applicationCache - 这是一个真正的痛苦。本文解释了原因,并就如何使用 applicationCache 和 localStorage 的混合方法来离线查看(而不是提交)页面提供了一些指导:

http://www.alistapart.com/articles/application-cache-is-a-douchebag/

这是一篇文章,其中有一个将表单数据捕获到 localStorage 的示例,但不幸的是它没有提供实际提交离线数据的示例:

http://miniapps.co.uk/blog/post/using-html5-localstorage-as-a-fallback-for-offline-form-submission

另外,当心 window.navigator.onLine 来检测离线状态——它在浏览器中的实现并不一致,你最好让用户明确告诉你他们是否离线。

——乍得

于 2012-06-28T18:40:47.557 回答