Angular 5-关闭浏览器时清除localStorage

时间:2018-11-14 06:38:38

标签: angular angular5

我正在将Angular 5用于我的Web应用程序。每当用户关闭浏览器窗口时,我都想清除localStorage对象。

 @HostListener("window:beforeunload", ["$event"])
clearLocalStorage(event) {
    localStorage.clear();
    console.log('####Destroy local storage####');
}

由于其他逻辑(例如应用程序中的SSO),我无法将上面的代码粘贴在主 app.component.ts 中。

有没有办法,我可以使用不同的方法在角度应用程序中全局执行此操作。

请提出建议。

2 个答案:

答案 0 :(得分:1)

您可以改用sessionStorage。

  

Session Storage

如果使用您提到的方法。如果您同时打开2个标签,则当您关闭一个标签时,localStorage将被清除。

答案 1 :(得分:1)

在您的情况下,本地存储不是一个好的选择。

本地存储-存储没有到期日期的数据,并且只能通过JavaScript或清除浏览器缓存/本地存储的数据来清除。

会话存储中-仅存储会话数据,这意味着数据将一直存储到浏览器(或标签)关闭为止。

因此请使用会话存储来实现您的目的。它将在浏览器关闭时自动清除。