window:beforeunload在Angular 5中刷新页面时执行

时间:2018-07-06 09:35:46

标签: javascript angular angular5

我想在关闭浏览器或关闭浏览器选项卡时清除一些localStorage变量。 它工作正常,但是当我刷新页面时,它也会清除localstorage变量。

因此,我们如何区分Angular-5中的页面刷新和浏览器关闭事件?

我的.ts文件代码

import { Renderer, OnInit, AfterViewInit,ElementRef,HostListener} from '@angular/core';

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

1 个答案:

答案 0 :(得分:0)

这似乎是sessionStorage的合适用例。

https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

  

sessionStorage属性允许您访问当前来源的会话存储对象。 sessionStorage类似于Window.localStorage;唯一的区别是,存储在localStorage中的数据没有设置过期时间,而存储在sessionStorage中的数据在页面会话结束时被清除。页面会话的持续时间只要浏览器处于打开状态,并且在页面重新加载和还原后仍然存在。在新标签页或窗口中打开页面将导致启动新会话,这与会话Cookie的工作方式不同。