页面关闭,刷新区分-------清除浏览器缓存

1、对于谷歌,ie,360

页面加载时只执行onload

页面关闭时先执行onbeforeunload,最后onunload

页面刷新时先执行onbeforeunload,然后onunload,最后onload

2、对于火狐

页面刷新时,只执行onunload;页面关闭时,只执行onbeforeunload

3、页面刷新、关闭判断

思路:在cookie中添加标志位tempFlag,刷新和关闭都会执行onbeforeunload和onunload事件,因此,在onload中判断session中的tempFlag存在时为刷新,当关闭页面后tempFlag被移除,cookie的清除是在再次进入网页时tempFlag不存在于是清除cookie重新加载,具体代码如下:

import util from '@/libs/util'  //根据自己的cookie封装文件引入

window.onbeforeunload=event=>{

  window.sessionStorage["tempFlag"]=true

}

window.onload=event=>{

  if(!window.sessionStorage['tempFlag']){

    util.cookies.remove("token")

    location.reload()//重新加载必须写,原因是在onload时页面cookie已经生成,此时清除cookie页面也不会有反应,若不写,则加载的仍是原cookie页面,而不是清除后的

  }else{

    window.sessionStorage.removeItem("tempFlag")

  }

}

window.onunload = event => {

  window.sessionStorage["tempFlag"]=true

  };

我的cookie封装文件:util.cookie.js

import Cookies from 'js-cookie'

你可能感兴趣的:(页面关闭,刷新区分-------清除浏览器缓存)