案例13-localStorage的使用分析

news2024/10/1 15:19:46

1、背景介绍

大家看下边的逻辑是否能看明白呢?
在这里插入图片描述
前端在调用后端接口获取某一个人的评论次数、获赞次数、回复次数。调用之后判断后端返回过来的值。如果返回回来的值是0的话,从缓存中获取对应的值,如果从缓存中获取的评论次数为空那么其他两个的次数也为0。造成前端数据混乱。
在这里插入图片描述

2、思路&方案

1、明确缓存使用场景
2、写代码之前逻辑自洽

3、过程

1、什么是LocalStorage
localstorage 在浏览器的 API 有两个:localStorage 和sessionStorage。localStorage 和 sessionStorage 的区别主要是在于其生存期。localStorage理论上来说是永久有效的,即不主动清空的话就不会消失,即使保存的数据超出了浏览器所规定的大小,也不会把旧数据清空而只会报错。sessionStorage的生存期顾名思义,类似于session,只要关闭浏览器(也包括浏览器的标签页),就会被清空。

//保存数据
localStorage.setItem("key","value");
//读取数据
localStorage.getItem("key");
//删除数据
localStorage.removeItem("key")

在这里插入图片描述

什么时候使用localStorage

1、登录完成后token的存储
2、用户部分信息的存储,比如昵称、头像、简介
3、一些项目通用参数的存储,例如某个id、某个参数params
4、项目状态管理的持久化,例如vuex的持久化、redux的持久化
5、项目整体的切换状态存储,例如主题颜色、icon风格、语言标识

注意事项

1.命名问题
现在我们的线上就有这个问题,在同源的域名下,同源的两个项目的localStorage是互通的。
2.时效性问题
localStorage除非手动进行清除,否则的话将会一直存在。
3.隐蔽性问题
我们所有存在localStorage里面的数据的,都是在Application里面可以直接看到的,上线之后,用户也是可以直接看到的,但是有的数据我们并不想让用户看到,这时候就要考虑隐蔽性的问题了。

4、总结

1、首先对业务进行一个透彻的分析,不是看到哪写到哪。对于评论、获赞、回复之间的逻辑。评论和回复之间是没有耦合关系的。我们不评论自己的内容也完全可以回复别人的评论。所以说不能因为评论是0就把回复也设置为0,逻辑上是不能自洽的。
2、不应该把经常变动的数据放入的缓存中。

5、升华

明确边界,概念清晰,不是能实现功能就好了,就像我们上学不是为了考试,考试只是一种检验的手段,学习还有很多其他的方法,实现前后端传值也有很多其他的方法,我们要在多种方法中找到一种最适合我们的方法。不要为了使用而使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/398044.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构——线性数据结构(C语言实现单链表详解)

什么是单链表? 单链表就是一种线性的链式数据结构。单链表通过节点来存储线性数据的,单链表不要求连续的物理空间来存储数据。但是,单链表在逻辑结构上是连续的。通常,会有一个头指针指向单链表的首结点因为单链表的结点会存储一…

【云原生】持久化存储之NFS

文章目录介绍一、NFS1. 部署nfs1.1 找一台服务器作为nfs服务端1.2 检查:1.3 创建挂载路径1.4 在nfs服务器启动nfs服务2. 所有node节点部署nfs服务3. 测试—部署nginx应用,使用nfs持久网络存储二、 PV和PVC2.1 PV2.2 PVC2.3 实现流程2.4 PV&PVC挂载步…

day61-day62【代码随想录】二刷数组

文章目录前言一、有效三角形的个数【二分法】二、Pow(x, n)(力扣50)方法一方法二三、在 D 天内送达包裹的能力(力扣1011)【二分法】四、制作 m 束花所需的最少天数(力扣1482)【二分法】每日一题&#xff1a…

你真的知道MySQL索引组织数据的形式吗??

MySQL索引背后的数据结构前言MySQLMySQL背后的数据结构B树B树前言 好久不见,困扰了我许久的阴霾终于散去了,但是随之而来的是学校堆积如山的任务考试,这段时间不可否认我的学习效率和学习效果不是很佳,但是我之前就说过学习是需要贯穿程序猿一生的事情,流水不争先,争的是滔滔不…

Python基础 | Miniconda的安装

文章目录什么是Miniconda3Miniconda安装JupyterMiniconda运行JupyterMiniconda安装SpyderMiniconda和Anaconda对比Miniconda安装第三方库什么是Miniconda3 Miniconda是conda的免费的最小安装包。它是Anaconda的小型引导程序版本,仅包含了conda,Python&a…

【架构师】跟我一起学架构——Serverless

博客昵称:架构师Cool 最喜欢的座右铭:一以贯之的努力,不得懈怠的人生。 作者简介:一名Coder,软件设计师/鸿蒙高级工程师认证,在备战高级架构师/系统分析师,欢迎关注小弟! 博主小留言…

个人收集的网站,可以参考(程序员可收藏)

程序员是一个需要不断学习的职业,幸运的是,在这个互联网时代,有很多渠道可以获取知识。 1在线教程 1、how2j.cn 地 址:https://how2j.cn/ 简 介:一个Java全栈开发教程网站,内容全面,简洁…

Docker Desktop安装本地Kubernetes集群

目录 下载安装说明 下载Docker Desktop windows需要开启Hyper-v 启用kubernetes kubectl配置 设置path环境变量 验证安装是否成功 实现Nginx容器的部署 按顺序进行nginx创建 Nginx的相关信息 Setup local Kubernetes cluster with Docker Desktop - DEV Community 上面…

UNIX网络编程-卷1_TCP粘包问题解决方法

这篇文件记录流协议粘包问题。首先记录什么是粘包,其次介绍粘包产生的原因,最后给出粘包的解决方法。 1 流协议与粘包 第一种情况:主机B一次读一个M消息 ,不会产生粘包; 第二种情况:主机B一次读M1M2个消息…

数据模型(下):反规范化和维度模型

接前文: 数据模型(上)_专治八阿哥的孟老师的博客-CSDN博客 数据模型(中):键和规范化_专治八阿哥的孟老师的博客-CSDN博客 5.反规范化 反规范化是选择性地违反规范化规则并在模型中重新引入冗余的过程,额外的冗余有助于降低数据检索的时间,且创建一个用户友好的模型。 数…

一文吃透 Spring 中的IOC和DI

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

【Redis应用】查询缓存相关问题解决(二)

🚗Redis应用学习第二站~ 🚩起始站:【Redis应用】基于Redis实现共享session登录(一) 🚩本文已收录至专栏:Redis技术学习 👍希望您能有所收获,底部附有完整思维导图 一.概述 本篇我们会一起来学习…

项目管理工具DHTMLX Gantt灯箱元素配置教程:只读模式

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求,具备完善的甘特图图表库,功能强大,价格便宜,提供丰富而灵活的JavaScript API接口,与各种服务器端技术&am…

【深度探讨】公共部门在选择区块链平台时要考虑的6个方面

发表时间:2022年8月17日 信息来源:bsvblockchain.org 与私营企业相比,全球的公共部门组织在考虑升级软件解决方案时面临着一系列的全新挑战。公共部门的决策流程冗长而复杂,他们要不惜一切代价避免对现有业务造成干扰,…

ISP全流程简介

ISP的pipline总结 ISP(Image Signal Processor),即图像处理,主要作用是对前端图像传感器输出的信号做后期处理,主要功能有线性纠正、噪声去除、坏点去除、内插、白平衡、自动曝光控制等,依赖于ISP才能在不同的光学条件下都能较好…

面试 - 软件工程体系

今天是我人生中的第二次面试,第一次面试到技术问题。 面试公司:无锡信捷电气股份有限公司 面试时间:2023 年 3 月 6 日 15:30 面试地点:西安工程大学(临潼校区)D-188 在技术面中,我表现的不是很…

外骨骼机器人(五):步态分析之正常步态

研究病理步态之前,需要了解正常步态,作为判断标准。但是需要记住两个问题:1.“正常”因人而异,性别、年龄、身体情况都需要考虑在内,因此,需要对不同的个体选择合适的正常标准;2.即使病人的步态与正常步态有某种不同,这也不能说明这是不可取的,也不能说明应该把它变成…

计算机网络【王道】

文章目录第一章 计算机网络体系结构计算机网络概述计算机网络的概念计算机网络的组成计算机网络的功能计算机网络的分类计算机网络的性能指标计算机网络体系结构与参考模型计算机网络分层结构计算机网络协议、接口、服务的概念ISO/OSI 参考模型和 TCP/IP模型第二章物理层基本概…

Codeforces Round 855 (Div. 3) A-E2

比赛链接:Dashboard - Codeforces Round 855 (Div. 3) - Codeforces A:模拟 题意:给定一个字符串,问这个字符串是不是猫叫。定义是猫叫得字符串: 1:必须由大写或小写得M(m),E&…