【问题标题】:Can you use HTML5 local storage to send form contents "later"?您可以使用 HTML5 本地存储“稍后”发送表单内容吗?
【发布时间】:2011-10-21 18:46:18
【问题描述】:

假设某人在失去连接时正在他们的 iPhone 上回复在线论坛。

是否可以使用 HTML5 本地存储来保存他们的提交并在他们恢复连接时发布?

如果有,如何判断手机是否有连接?

【问题讨论】:

    标签: html local-storage form-submit


    【解决方案1】:

    是的,您可以通过在应用中实现您的自定义逻辑。 要查看连接是否可用,您可以使用navigator.onLine 标志(但似乎并不完全可靠):

    Does Safari and/or WebKit implement the equivalent of window.navigator.online?

    http://html5demos.com/offline

    或尝试从互联网加载内容,看看是否可行:

    Checking online status from an iPhone web app

    【讨论】:

      【解决方案2】:

      难道你不能使用 JavaScript 来设置一个变量并将其变成一个字符串,其中包含用户放入框中的任何内容?您可以使用 getElementById 或类似方法从表单中获取内容。

      然后,将其存储在“cookie”中。如果你不知道怎么做,这里是 w3 中的 javascript cookie 的简要介绍:http://www.w3schools.com/js/js_cookies.asp

      然后在页面加载时,您可以让它加载 cookie 并使表单的值等于您之前声明的变量。

      【讨论】:

      • 有可能,但这会将我限制在 4K。
      • 我想这只是引出了一个问题,您希望您的客户/客户写什么?我认为人们在手机上写 4k 个字符的情况非常罕见。如果您肯定需要更多不同的方法,但请记住,这设置起来非常简单,可能适合您的需求(同样,有多少人会在手机上输入 4k 字符?)
      【解决方案3】:

      最好的方法(鉴于 navigator.onLine 在不同浏览器中的行为不一致)是每隔几秒或每几次击键将用户输入的内容保存到 localStorage。

      如果页面再次重新加载,那么您可以确保首先查看 localStorage 键中是否存储了任何内容,如果有,则将其加载到文本框中,用户可以从他离开的地方继续。

      您还可以查看本文http://dev.opera.com/articles/view/taking-your-web-apps-offline-web-storage-appcache-websql/的“使用网络存储离线”部分

      【讨论】:

        猜你喜欢
        • 2011-06-23
        • 1970-01-01
        • 2022-01-21
        • 2013-06-29
        • 2012-11-06
        • 1970-01-01
        • 2012-03-18
        • 1970-01-01
        • 2011-02-07
        相关资源
        最近更新 更多