【问题标题】:Save state in a webapp before a user navigates away在用户离开之前在 web 应用中保存状态
【发布时间】:2018-06-14 14:55:22
【问题描述】:

在过去,侦听onbeforeunload 可以让开发人员提醒用户有未保存的数据,并且他们可能不想离开浏览器中的当前页面。

现在 Chrome doesn't support onbeforeunload and recommends the Page Visibility API。了解某个页面是否正在被查看似乎对某些事情很有用,但是 Web 应用程序如何告诉正在导航的用户他们的某些数据尚未同步?

【问题讨论】:

  • 谁说 chrome 不支持 onbeforeunload? (尝试离开此页面上的答案)。此外,您可以在卸载期间使用navigator.sendBeacon 将其发送到服务器,它会在卸载完成之前继续存在。
  • 上面的链接说不支持。 beforeunload 看起来可能有条件支持,如果用户与页面交互:developer.mozilla.org/en-US/docs/Web/Events/beforeunload 这可能足以解决保存状态的问题。
  • 我想我在这里寻找最好的模式,代码方面,正确处理跨浏览器的卸载事件。
  • 如果他们不互动就没有工作可丢吗?您可以在用户输入时保存所有用户输入,例如 localStorage...

标签: javascript web web-applications


【解决方案1】:

第一个评论者的信息是正确的 - beforeunload 仍然支持。让我感到困惑的是 Chrome 60+ according to the Chrome changelog 需要“用户手势”。因此,除非您点击/单击 UI,否则无法通过刷新页面来测试行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    相关资源
    最近更新 更多