【问题标题】:How to differentiate browser close and refresh using angularjs?如何使用 angularjs 区分浏览器关闭和刷新?
【发布时间】:2016-01-19 11:25:08
【问题描述】:

我有用于存储employeeid 的localstorage。当我刷新浏览器时获取本地存储值,例如基于employeeid 的employeeid 获取一些数据。当我关闭浏览器时,我想使用angularjs 或javascript 清除本地存储中的employeeid。我尝试了以下代码。

window.onunload = close;
    function close() {
        //// do something...
        localStorage.clear();
        return null;
    }

在上面的代码中,当我刷新浏览器时,window.onunload 也会触发并清除本地存储值,但我只想在浏览器关闭时清除本地存储。

【问题讨论】:

  • 您需要它来跨不同的窗口/选项卡工作吗?如果没有,您应该使用sessionStorage 开头。
  • 没有一个标签
  • 那么使用sessionStorage - 它只会在窗口/选项卡关闭之前存在。
  • 谢谢@CBroe。现在我的问题使用 sessionStorage 解决了
  • 好的,我添加了这个作为答案,再加上一点上下文。

标签: javascript angularjs


【解决方案1】:

如果您不需要它在不同的窗口/选项卡上工作,那么您应该使用sessionStorage 而不是localStorage

您在localStorage 中存储的内容是“永久”的,sessionStorage 仅在窗口/选项卡关闭之前存储值,类似于“会话 cookie”,它的设置没有任何生命周期 - 只会持续到浏览器已关闭(但当您的网站在多个选项卡中打开时,可以在不同的选项卡中使用。)

更多细节可以在这些问题中找到:
What is the difference between localStorage, sessionStorage, session and cookies?
HTML5 Local storage vs. Session storage

【讨论】:

    【解决方案2】:

    【讨论】:

    • 刷新浏览器也会出现同样的问题
    猜你喜欢
    • 1970-01-01
    • 2018-01-09
    • 2018-09-26
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 2014-01-16
    相关资源
    最近更新 更多