js缓存的方法

1.localStorage缓存

过期策略:localstorage永久存储,不过期,除非手动删除,sessionstorage在重启浏览器、关闭页面或新开页面时失效。

1.1添加缓存


localStorage.setItem("name","value");
export function addLocalStorage (name, varietiesCode, productNameList) {
  let getStorage = localStorage.getItem(name)
  if (getStorage != null) {
    //将JSON格式字符串转换为js对象
    let jsonStorage = JSON.parse(getStorage)
    let proudcList = varietiesCode
    //查看品种是否存在
    let index = jsonStorage.findIndex((x) => x.code === proudcList)
    if (index >= 0) {
    //若存在则删除掉该项
      jsonStorage.splice(index, 1)
    }
    
    let goModel = { code: varietiesCode, data: [] }
    goModel.data = productNameList
    jsonStorage.push(goModel)
    localStorage.setItem(name, JSON.stringify(jsonStorage))
  } else {
    let goModel = { code: varietiesCode, data: [] }
    goModel.data = productNameList
    localStorage.setItem(name, JSON.stringify([goModel]))
  }
}
    huancun() {
      //添加缓存
      addLocalStorage(
        "landingsVarietiesCode",
        this.dataForm.varietiesCode,
        this.dataForm.productNameList
      );
    },

JSON.parse()方法将JSON格式字符串转换为js对象(属性名没有双引号)。
解析前要保证数据是标准的JSON格式,否则会解析出错。

var jstr = '{"name":"wust", "url":"www.wust.edu.cn", "age":120}'
var obj = JSON.parse(jstr);
// 结果 obj= { name:"wust", url:"www.wust.edu.cn", age:120 }

1.2 读取缓存

JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。

//读取缓存
  let getStorage = localStorage.getItem(name)
  if (getStorage != "" && getStorage != null) {
    let jsonStorage = JSON.parse(getStorage)
    let json = jsonStorage.filter(
      (x) => x.code == varietiesCode
    );
    if (json.length > 0) {
      if (json[0].data.length > 0)
        return json[0].data
      else 
      return []
    } 
    return []
  } 
  return []

filter()方法会创建一个新数组,原数组的每个元素传入回调函数中,回调函数中有return返回值,若返回值为true,这个元素保存到新数组中;若返回值为false,则该元素不保存到新数组中;原数组不发生改变。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值