前端实现设置缓存数据定时失效

栏目: JavaScript · 发布时间: 6年前

内容简介:在项目开发中,我们可以写一个公用的方法来进行存储的时候加上时间戳存储读取

在项目开发中,我们可以写一个公用的方法来进行存储的时候加上时间戳

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)
}
复制代码

三、总结

上面两个方法各有各的优点和缺点,如果小伙伴们有更好方法,麻烦留言互相学习


以上所述就是小编给大家介绍的《前端实现设置缓存数据定时失效》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

社会化营销

社会化营销

陈亮途 / 万卷出版公司 / 2011-10-1 / 45.00元

这是一本讲述社会化媒体营销的书。今天,社会化媒体营销和移动互联网的势头已经是锐不可当的了,而这两者正正是最需要创意才能跟顾客,跟大众建立关系,创造利润的。假如国内的企业还是以不规范的手段来做营销行为,那么我们的营销水平一定会更加低落。本书作者一直以提升国内营销素质和营销人员的水平作为使命,经常穿梭于世界各地,本书正是作者工作经验的结晶,在书中,作者列举了大量国内外的成功(失败)案例,以帮助读者理解......一起来看看 《社会化营销》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具