快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程电脑软件教程 → vue项目实现关闭浏览器清除用户缓存功能

vue项目实现关闭浏览器清除用户缓存功能

时间:2022-09-25 07:51:19人气:作者:快盘下载我要评论

最近项目要实现关闭浏览器清除用户缓存的功能;在网上找了很久大部分都是使用window.onbeforeunload这个监听函数来做处理的;但是这个监听函数最大的问题就是浏览器刷新和关闭都会触发这个监听的事件;不符合我的需求。于是一开始的思路一直在寻找如何区分刷新和关闭的;但是找了很多方法有的不太靠谱;有的没有效果
下面这种我试了下;倒是也能实现;但是这个间隔的时间这谁说的准呢;不同的浏览器可能时间间隔都不一样;总之感觉不太靠谱

    const that = this;
    const is_firefox = navigator.userAgent.indexOf(;Firefox;) > -1; //是否是火狐浏览器
    window.onbeforeunload = function () {
      // 刷新或关闭页面都会执行;且先于onunload执行
      that._beforeUnload_time = new Date().getTime();
      if (is_fireFox) {
        sessionStorage.removeItem(;access_token;);
      }
    };
    window.onunload = function () {
      that._gap_time = new Date().getTime() - that._beforeUnload_time;
      if (that._gap_time <= 2) {
        // 浏览器关闭
        sessionStorage.removeItem(;access_token;);
      } else {
        // 浏览器刷新
      }
    };

后面;我同事给我提供了另外一种思路。利用cookie缓存如果没有设置时间关闭浏览器缓存会被自动清除的特性;方法如下
我的项目是在登录成功的时候存用户缓存的;于是我也在登录成功的时候存入一个cookies变量;根据是否存在这个变量在请求的时候是否清除token

import Cookies from ;js-cookie;;
// 登录成功的代码函数里面
Cookies.set(;CLOSEBROWSERFLAG;, ;closeBrowserFlag;);

// 在给项目中给请求authorization赋值的地方
const closeBrowserFlag = Cookies.get(;CLOSEBROWSERFLAG;)

const authorization = { accessToken: closeBrowserFlag && localStorage.getItem(;access_token;) ? localStorage.getItem(;access_token;) : ;; };

就这么简单就可以啦

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。