前端缓存处理[通俗易懂]

前端缓存处理[通俗易懂]前端的缓存原来是这样做的!

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

前端缓存处理

在开发过程中,总有一些使用频率很高的接口,数据内容还不基本不修改的数据。为了提高效率,自然要放到缓存中。

后端将数据放入redis,那么前端放到哪呢?

通常的选择是localStorage、sessionStorage中。

1.前端的缓存位置区别:

简单说明,详细区别可自行百度。

localStorage: 永久保存,浏览器关闭也不会消失。除非手动清除数据。

sessionStorage:暂时保存,缓存的数据时间是会话级别的。不会永久保存。

2.js工具类代码:

/** * 根据字典编码获取字典数据 * 注意:此方法是异步方法,需要用.then(res => {})获取返回值 * @param {string} code 字典编码 * @returns 字典数据 */
async getCodeList(code) { 
   
  let codeList = sessionStorage.getItem(code);
  // 校验这个数据是否可用
  if (StringUtil.isEmpty(codeList)) { 
   
    // 此处同步调用接口,是防止方法已经结束了,但是数据还没获取到。(这里使用await,方法就必须是async修饰的)
    await sysCode.itemCodes({ 
   code: code}).then((res) => { 
   
      // 存数据时都需要用JSON进行转换。
      sessionStorage.setItem(code, JSON.stringify(res));
      codeList = JSON.stringify(res);
    })
  }
  return JSON.parse(codeList);
},

/** * 根据字典编码和字典数据的id获取该字典数据的名称 * 注意:调用此方法的位置要确保当前系统已经调用过同文件中的getCodeList方法,并且code一致 * @param {string} code 字典编码 * @param {number} id 字典数据的id * @returns {String} 字典数据的名称 */
getCodeName(code, id) { 
   
  id = parseInt(id);
  let codeList = sessionStorage.getItem(code);
  return JSON.parse(codeList).filter(e => e.valueId === id)[0].valueName;
},

Jetbrains全家桶1年46,售后保障稳定

3.页面中的使用:

/** * 获取下拉框数据 */
select() { 
   
  // 异步方法需要使用.then()获取数据
  sysCodeUtil.getCodeList("type").then(res => { 
   
    this.type = res;
  })
},

// 此处粘一行代码说明getCodeName的使用
res.data.type = sysCodeUtil.getCodeName("type", res.data.type);

使用时根据具体使用环境具体选择放到sessionStorage中还是localStorage中,我这里是放到了sessionStorage中。

我是做java的,js并不是非常熟悉,把这个方案想出来用了一两天的时间。

最开始没有这个方法并没有加异步,写完了这个工具类之后发现系统第一次调用的时候,方法已经结束了但是没有获取到值。

sessionStorage中也有值,就是返回值没有数据。后来发现是调用接口的时候异步执行,方法结束后才会调用接口。(最开始不太明白js的异步执行规则,后来才知道的)

加上异步之后就可以解决这个问题了,调用的时候会把数据获取到再返回。

我这里是这样做的,我感觉不是最优解,但是我只想到了这种方式,有大佬有更好的方式欢迎在评论区评论!

有什么问题,也欢迎在评论区留言!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206690.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Eclipse代码自动补全方法「建议收藏」

    Eclipse代码自动补全方法「建议收藏」MyEclipse,是在eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、JavaEE以及移动应用的开发;以下小编给大家介绍在使用MyEclipse开发编写代码中代码提示的快捷方式;代码的提示大大给开发者带来高效的编程及代码书写的准确率等。详细步骤如下:1、找到Window下的Preferences里面的Java-Editor-Templates路径…

    2022年5月31日
    33
  • 玻尔兹曼公式推导碰撞项_玻尔兹曼方程表达式

    玻尔兹曼公式推导碰撞项_玻尔兹曼方程表达式在做别的事之前,让我们试做一个假想的研究。假定我们有一个很好的能跟踪单个运动粒子而不产生任何其他效应的激光探测器,把这个探测器应用在一个波尔兹曼气体上,可以很容易发现,无论粒子间碰撞能否忽略,牛顿轨道方程始终是有意义的(如果需要考虑碰撞,沿牛顿轨道的粒子存活几率是应该引进的)。问题就这样产生了:因为波尔兹曼方程和给定的初值边值条件已经构成了一个完全集合,我们是否应该简单的无视牛顿方程?如果牛顿方程…

    2022年8月11日
    6
  • 麦克风声源定位原理_一种利用麦克风阵列进行声源定位的方法与流程

    麦克风声源定位原理_一种利用麦克风阵列进行声源定位的方法与流程本发明涉及计算机信号处理领域,具体涉及一种用麦克风阵列时延估计定位声源的方法。背景技术:20世纪80年代以来,麦克风阵列信号处理技术得到迅猛的发展,并在雷达、声纳及通信中得到广泛的应用。这种阵列信号处理的思想后来应用到语音信号处理中。在国际上将麦克风阵列系统用于语音信号处理的研究源于1970年。1976年,Gabfid将雷达和声纳中的自适应波束形成技术直接应用于简单的声音获取问题。1985年,美国…

    2022年9月22日
    1
  • linux系统查看网卡命令_linux如何配置网卡

    linux系统查看网卡命令_linux如何配置网卡rhel内核版本号信息:[root@hvrhub~]#uname-aLinuxhvrhub2.6.18-308.el5#1SMPFriJan2717:17:51EST2012x86_64x86_64x86_64GNU/Linux查看网卡的驱动。制造商等信息:[root@hvrhub~]#kudzu–probe–class=network-class:…

    2022年10月19日
    1
  • JVM垃圾回收机制(一)[通俗易懂]

    JVM垃圾回收机制(一)[通俗易懂]一、什么是垃圾?1:引用计数算法:给对象中加一个引用计数器,每当有一个引用指向它时,计数器的值就加一,引用失效时,计数器的值就减一。当该对象引用计数器等于0的时候就被视为垃圾。该算法存在很大的缺陷,若两个对象存在互相引用,则两者的引用计数器都不为0,都不能被GC。如:publicclassReferenceCountingGC{publi

    2022年6月7日
    32
  • python初级:基础知识-函数

    python初级:基础知识-函数

    2021年10月6日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号