JS判断浏览器关闭和刷新

本文共918字 阅读约需3分钟

转行前端不久,遇到好几个问题,虽然磕磕碰碰但是总算是打死了这一个个的拦路虎;

今天分享一个昨天天刚解决的问题:区分浏览器关闭和刷新的方法;

本人不知怎么就把代码逻辑写到了这里话不多说直接切入正文。

需求:

我需要在浏览器关闭的时候清除掉localstorage中的一个值,但是在刷新的时候不对localstorage进行操作;

了解:

浏览器关闭执行的是 beforeunload , unload 这两个事件;

而浏览器刷新执行的是beforeunload, unload, load 三个事件;

思路:

虽然刷新与关闭都会走onbeforeunload与onunload,但可能因为刷新在加载新页面前内部机制还需要做一些准备工作,所以刷新事件在执行到onunload事件时,用的时间会比关闭事件时间长。

所以,通过时间差来判断浏览器是刷新还是关闭,浏览器执行beforeunload的时候给一个开始时间,执行unload的时候给一个结束时间;判断一下时间差;我设置的是5毫秒来区分浏览器的关闭和刷新,具体的时间最好还是亲自测一下;

最后贴上我的代码

我是胡图,让我们一路同行

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190901A0DKVM00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券