【发布时间】:2011-10-21 18:46:18
【问题描述】:
假设某人在失去连接时正在他们的 iPhone 上回复在线论坛。
是否可以使用 HTML5 本地存储来保存他们的提交并在他们恢复连接时发布?
如果有,如何判断手机是否有连接?
【问题讨论】:
标签: html local-storage form-submit
假设某人在失去连接时正在他们的 iPhone 上回复在线论坛。
是否可以使用 HTML5 本地存储来保存他们的提交并在他们恢复连接时发布?
如果有,如何判断手机是否有连接?
【问题讨论】:
标签: html local-storage form-submit
是的,您可以通过在应用中实现您的自定义逻辑。
要查看连接是否可用,您可以使用navigator.onLine 标志(但似乎并不完全可靠):
Does Safari and/or WebKit implement the equivalent of window.navigator.online?
或尝试从互联网加载内容,看看是否可行:
【讨论】:
难道你不能使用 JavaScript 来设置一个变量并将其变成一个字符串,其中包含用户放入框中的任何内容?您可以使用 getElementById 或类似方法从表单中获取内容。
然后,将其存储在“cookie”中。如果你不知道怎么做,这里是 w3 中的 javascript cookie 的简要介绍:http://www.w3schools.com/js/js_cookies.asp
然后在页面加载时,您可以让它加载 cookie 并使表单的值等于您之前声明的变量。
【讨论】:
最好的方法(鉴于 navigator.onLine 在不同浏览器中的行为不一致)是每隔几秒或每几次击键将用户输入的内容保存到 localStorage。
如果页面再次重新加载,那么您可以确保首先查看 localStorage 键中是否存储了任何内容,如果有,则将其加载到文本框中,用户可以从他离开的地方继续。
您还可以查看本文http://dev.opera.com/articles/view/taking-your-web-apps-offline-web-storage-appcache-websql/的“使用网络存储离线”部分
【讨论】: