Angular 2在关闭窗口时如何删除本地存储数据

时间:2019-01-27 14:21:53

标签: javascript angular local-storage session-storage

我遇到这样的情况,

用户登录后,将在本地存储中维护用户令牌,并且该令牌在所有选项卡中都可用,一旦用户关闭窗口,我就需要从本地存储中删除用户令牌。为此,我可以使用会话存储,但是不能在所有选项卡之间维护会话。那么在关闭浏览器/窗口时如何删除本地存储?

我提到了有关该主题的所有以前的堆栈溢出问题,但我没有得到确切的答案。 有任何建议吗?

3 个答案:

答案 0 :(得分:0)

前一段时间在某处找到了这个技巧。您可以将数据存储到localStorage几秒钟,并为存储事件添加事件侦听器。这样,您将知道何时有任何选项卡将某些内容写入本地存储,然后可以将其内容复制到sessionStorage,然后再清除本地存储

答案 1 :(得分:0)

知道了!

我刚刚在app.component.ts文件中添加了以下代码,以在关闭窗口时删除所有本地存储数据。

import { HostListener } from '@angular/core';

@HostListener('window:beforeunload', ['$event'])
public beforeunloadHandler($event) {
  localStorage.removeItem('UserToken');
}

答案 2 :(得分:-1)

    window.addEventListener("unload", function(event) {

    //Use any of local storage methods to remove the user.

    localStorage.removeItem('key'); // key you want to be removed.

    //OR 

    localStorage.clear();

     });

// You can also try using.

window.addEventListener("unload", function(event) { localStorage.removeItem('key'); });

https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onunload

https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload