欢迎光临散文网 会员登陆 & 注册

【D1n910前端】浅谈localStorage和sessionStorage的应用

2021-02-01 14:38 作者:爱交作业的D1N910  | 我要投稿

正常操作,正常分析,大家好,我是D1n910

本次要谈是localStorage和sessionStorage,本地存储和会话存储,他们的作用都是把数据存储到浏览器的内存中。

假设你都知道localStorage和sessionStorage是什么,以及基本的方法。

控制台里可以看到两者的属性、方法是一样的

1、为什么用localStorage/sessionStorage

网页上的动态数据信息一般都是来自后端服务器,通过这样的方式动态显示数据,而不是一开始全部传过来,放到内存中。

为什么要用到本地存储,主要是为了功能需求。比如,后端服务器怎么知道这个哔哩哔哩页面的使用者是【D1n910 UID 12324653 】而不是【碧诗 UID 2】,可以通过每次请求后端的时候,告诉后端我是xxxx从而实现。以前的时候会用cookie,不过cookie存储拿取数据不方便、不安全、装得不够多,所以选用了localStorage/sessionStorage

2、localStorage/sessionStorage 区别

在同一协议、同一主机名和同一端口下。

localStorage

可以在不同窗口之间获取到localStorage数据。

清理方式:主动清理

sessionStorage

在同窗口内获取到sessionStorage数据。

清理方式:主动清理/关闭窗口

3、应用

面对一些前端页面的需求,比如一些神奇的交互。

针对【不同窗口下的需求】一般采用 localStorage。


举个例子:【A窗口】展现过一个alert,那么【B窗口】不再展示alert。

那么就可以在【A窗口】展现过一个alert后,修改 localStorage 对应的自定义标示ifAlert为true,然后【B窗口】调用 localStorage 的 ifAlert,看到是 true,则可不进行 alert。


再举个最常见的例子,不同窗口ajax请求会带上token去请求,【A窗口】请求刷新过 token 后,【B窗口】想要共用同一个 token,那么也是可以存到 locakStorage 里调用的。


针对【关掉窗口后就清理数据的需求】一般采用 sessionStorage。

比如还是上面的token例子,如果把 token 存到浏览器 localStorage 内,那么可能机主关掉浏览器后,会被某黑客进入,然后从缓存中获取到 token 进行使用。sessionStorage 则可以在关闭窗口后,清理对应的数据内容。


【D1n910前端】浅谈localStorage和sessionStorage的应用的评论 (共 条)

分享到微博请遵守国家法律