vue -关于浏览器localstorge数据定期清除的实现

1.实现背景

用户登录时的信息存在了localstorge中,但它会一直存在。一般来说,我们希望这个数据能够定期被清除掉,以下一个定时清除的实现。

2.实现原理

在用户登录时,将用户信息存入localstorge的同时,将当前时间作为时间戳也保存在localstorge中,然后需要验证的位置设置一个定时器,定时扫描时间戳状态:获取当前时间戳,然后减去之前存的时间戳,如果两者差值超过一定范围(过期时间/),则清除localstorge缓存即可。

3.代码实现

1.登录时候,存用户信息,当前时间:

js 复制代码
 localStorage.setItem("userInfo", JSON.stringify(res.data))
 localStorage.setItem('timestamp', Date.now());

2.页面加载时,创建定时器,执行定时扫描,页面销毁前,清除定时器。

js 复制代码
data(){
	return{
	checkLocalStorageInterval : null
	}
},
created() {
    // 在组件创建完成后启动定时器
    this.startCheckLocalStorage();
  },
 beforeDestroy() {
    // 在组件销毁前清除定时器
    if (this.checkLocalStorageInterval) {
      clearInterval(this.checkLocalStorageInterval);
    }
  },

3.定时器主要实现:

js 复制代码
	startCheckLocalStorage() {
      this.checkLocalStorageInterval = setInterval(() => {
        this.checkLocalStorageStatus();
      }, 1000); //1s执行一次
    },
    checkLocalStorageStatus() {
      const storedTimestamp =localStorage.getItem('timestamp'); //拿之前存的时间戳
      // 如果没有时间戳或已超过1天,则清空数据
      if (!storedTimestamp || Date.now() - storedTimestamp > 24 * 60 * 60 * 1000) {
        this.clearLocalStorage();
      }
    },
    clearLocalStorage() {
       localStorage.removeItem('adminInfo'); //删除localstorge的数据
       //todo 另外要执行的事情
       //this.$router.push('adminLogin') 
       //console.log('localStorage has been cleared.');
    }
相关推荐
烬头882123 分钟前
React Native鸿蒙跨平台实现二维码联系人APP(QRCodeContactApp)
javascript·react native·react.js·ecmascript·harmonyos
pas13627 分钟前
40-mini-vue 实现三种联合类型
前端·javascript·vue.js
摇滚侠35 分钟前
2 小时快速入门 ES6 基础视频教程
前端·ecmascript·es6
2601_9498333940 分钟前
flutter_for_openharmony口腔护理app实战+预约管理实现
android·javascript·flutter
军军君012 小时前
Three.js基础功能学习十三:太阳系实例上
前端·javascript·vue.js·学习·3d·前端框架·three
xiaoqi9223 小时前
React Native鸿蒙跨平台如何实现分类页面组件通过searchQuery状态变量管理搜索输入,实现了分类的实时过滤功能
javascript·react native·react.js·ecmascript·harmonyos
qq_177767373 小时前
React Native鸿蒙跨平台实现应用介绍页,实现了应用信息卡片展示、特色功能网格布局、权限/联系信息陈列、评分展示、模态框详情交互等通用场景
javascript·react native·react.js·ecmascript·交互·harmonyos
2603_949462103 小时前
Flutter for OpenHarmony社团管理App实战:预算管理实现
android·javascript·flutter
wuhen_n3 小时前
JavaScript内存管理与执行上下文
前端·javascript
Hi_kenyon4 小时前
理解vue中的ref
前端·javascript·vue.js