蝙蝠岛资源网 Design By www.hbtsch.com
一、背景
业务需要在前端进行数据的缓存,到期就删除再进行获取新数据。
二、实现过程
前端设置数据定时失效的可以有下面2种方法:
1、当数据较大时,可以利用localstorage,存数据时候写入一个时间,获取的时候再与当前时间进行比较
2、如果数据不超过cookie的限制大小,可以利用cookie比较方便,直接设置有效期即可。
3、更多(请大神指点)
利用localstorage实现
localstorage实现思路:
1、存储数据时加上时间戳
在项目开发中,我们可以写一个公用的方法来进行存储的时候加上时间戳
export function setLocalStorageAndTime (key, value) { window.localStorage.setItem(key, JSON.stringify({ data: value, time: new Date().getTime() })) }
项目中应用
存储
// 有数据再进行存储 setLocalStorageAndTime('XXX', {name: 'XXX'})
读取
// 判断是否返回为null或者失效 getLocalStorageAndTime('XXX', 86400000)
2、获取数据时与当前时间进行比较
export function getLocalStorageAndTime (key, exp = 86400000) { // 获取数据 let data = window.localStorage.getItem(key) if (!data) return null let dataObj = JSON.parse(data) // 与过期时间比较 if (new Date().getTime() - dataObj.time > exp) { // 过期删除返回null removeLocalStorage(key) console.log('信息已过期') return null } else { return dataObj.data } }
利用cookie实现
我们用js-cookie这款插件来设置cookie,比较方便,可以自行查看文档。
js-cookie 的示例中只有以天为单位的有效期:
Cookies.set('name', 'value', { expires: 7 }); // 7 天后失效
官方文档只要设置天数,没有时分秒,这样我们想设置更小单位的时候无法下手,其实也可以设置时间戳来处理时间的,下面这种方式可以设置任意单位的有效期:
let seconds = 10; let expires = new Date(new Date() * 1 + seconds * 1000); Cookies.set('username', 'tanggaowei', { expires: expires }); // 10 秒后失效
贴上利用js-cookie的封装, 记得 npm i js-cookie
import Cookies from 'js-cookie' /* * 设置cookies * */ export function getCookies (key) { return Cookies.get(key) } /* * 设置Cookies * */ export function setCookies (key, value, expiresTime) { let seconds = expiresTime let expires = new Date(new Date() * 1 + seconds * 1000) return Cookies.set(key, value, { expires: expires }) } /* * 移除Cookies * */ export function removeCookies (key) { return Cookies.remove(key) }
三、总结
上面两个方法各有各的优点和缺点,如果小伙伴们有更好方法,麻烦留言互相学习
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
蝙蝠岛资源网 Design By www.hbtsch.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
蝙蝠岛资源网 Design By www.hbtsch.com
暂无利用js-cookie实现前端设置缓存数据定时失效的评论...
更新日志
2024年12月27日
2024年12月27日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]