在添加本地存储的时候,加入时间字段,取出来时,用 当前时间毫秒戳 - 存入时间时间毫秒戳 >= 自定义过期时间(例如3秒 1000 * 3)
使用场景:例如优化请求
上代码看看
// 获取当前毫秒戳
console.log(new Date().getTime()); //ml:18 1638152442833
// 获取当前毫秒戳 1979 1 1日计算机出生日
console.log(Date.now()); //ml:18 1638152442833
// 需求将毫秒变时间 [1638152442833 ---> 2021年11月29日10:07:19]
console.log(new Date(1638153271716).toLocaleString()); // 自定义传毫秒数 2021/11/29 上午10:34:31
console.log(new Date(new Date().getTime()).toLocaleString()); //当前毫秒转时间 2021/11/29 上午10:34:31
// 需求将时间转为毫秒 [2021年11月29日10:07:19 ---> 1638152442833]
console.log((new Date("2021/11/29 10:21:11")).getTime()); //自定义时间得到豪秒数 ml:25 1638152471000
console.log(new Date().getTime()); //当前时间得到豪秒数 ml:25 1638152471000
// 2021/11/29 上午10:04:17 日期加时间
console.log(new Date().toLocaleString());
// 2021/11/29 日期
console.log(new Date().toLocaleDateString());
// 上午10:04:17 时间
console.log(new Date().toLocaleTimeString());
第一
localStorage.setItem('cates', { time: Date.now(), data: this.data.cates })
//用{}形式 将当前时间,和要存数据,存入本地
第二
// 封装优化请求,请求的时候存本地且不过期,就使用本地数据,否则重新请求,
//在页面加载调用一下这个函数,不去直接调用getType请求接口
_setgetType() {
// 判断本地有没有数据
const cates = localStorage.getItem('cates');
if (!cates) { // 如果本地没有cates,就网络请求数据
this.getType()
} else {//本地有数据判断是否过期了//cates.time是本地的时间字段
if (Date.now() - cates.time > 1000 * 300 == true) {
this.getType()//当前时间 - 存的时间 > 5分钟 = 间隔时间 5分钟外就重新调用
} else {//有数据且没过期时
this.data.cates = cates.data;//将本地的数据赋值给定义的总数据data里的cates
//....想写的逻辑
console.log('本地有数据,且没有过期大于5分钟,不发送网络请求,使用渲染本地的数据');
}
}
},
完!
better late than never. 只要开始,虽晚不迟。
go for it! just do it! 加油!向前冲!做了再说!
下篇见