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

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

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

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

有帮助吗?

解决方案

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

另外一个简单的人口统计数据:HTML5是什么,5%的浏览器? 10%?仍然比已安装Gears的用户的0%还多。

这真是一个遗憾,非常感谢谷歌推出Gears的信封;但在野外,通常接受的唯一插件是Flash。幸运的是,HTML5几乎已经存在,具有几乎相同的功能。

其他提示

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

有关Google Gears不再处于开发阶段的谣言。当您查看齿轮功能并在 http://code.google.com/p/gears/issues/list?can=2&q=&sort=version&colspec=Version%20Milestone%20Owner%20ID新Gears开发的%20Summary%20Component ,只有3个项目将在0.6版本中修复。此外,根据维基百科的这篇文章( http://en.wikipedia.org/wiki/Google_Gears),似乎谷歌没有进行任何开发,开源项目也没有太大的动力。从文章中得到的是:

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

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

Dojo.Storage/ Dojo Offline ,有一个闪存桥,可让您使用flash的数据存储。限制是用户设置的,但从5Mb开始。库组件是一个抽象,也支持HTML 5,cookie和齿轮。

如果内存服务,Plus齿轮将允许您存储二进制blob。

Google Gears已经死了: http://gearsblog.blogspot.com/2011 /03/stopping-gears.html

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

但是,应该谨慎使用applicationCache - 这真的很痛苦。本文解释了为什么,以及如何使用applicationCache和localStorage的混合方法进行页面的离线查看(而不是提交)的一些指示:

http://www.alistapart.com/articles/application -cache-是-A-douchebag /

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

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

另外,请注意window.navigator.onLine以检测脱机状态 - 它不是跨浏览器一致地实现的,并且您可能最好让用户明确告诉您它们是否脱机。

- 乍得

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top