架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 11353|回复: 0

[Angular] Angular 6 localStorage和sessionStorage封装

[复制链接]
发表于 2018-10-23 10:37:13 | 显示全部楼层 |阅读模式
在前台的页面不需要往数据库中存储数据,但是需要将数据传递到下一个页面。这时候就涉及到了,数据的临时存储。前端的缓存的使用。

相同点:

1、作用是一样的,sessionStorage和localStorage一样都是用来存储客户端临时信息的对象。

2、存储内容类型:两者皆储存字符串类型的数据。

3、数据存储操作:key-value,操作用法相同。

不同点:

生命周期:

1、sessionStorage:生命周期是当前窗口或标签页,一旦窗口或标签页被关闭了,那么所有通过sessionStorage存储的数据也就被清空了,为了从安全方面考虑建议使用sessionStroage。


1) 同源策略限制。若想在不同页面之间对同一个sessionStorage进行操作,这些页面必须在同一协议、同一主机名和同一端口下。(IE 8和9存储数据仅基于同一主机名,忽略协议(HTTP和HTTPS)和端口号的要求)

2) 单标签页限制,在单页标签,不同url地址是可以访问到的!这里是单标签页限制。sessionStorage操作限制在单个标签页中,在此标签页进行同源页面访问都可以共享sessionStorage数据。

QQ截图20181023102800.jpg QQ截图20181023102727.jpg

3) 只在本地存储。seesionStorage的数据不会跟随HTTP请求一起发送到服务器,只会在本地生效,并在关闭标签页后清除数据。(若使用Chrome的恢复标签页功能,seesionStorage的数据也会恢复)。

4) 存储方式。seesionStorage的存储方式采用key、value的方式。value的值必须为字符串类型(传入非字符串,也会在存储时转换为字符串。true值会转换为"true")。

5) 存储上限限制:不同的浏览器存储的上限也不一样,但大多数浏览器把上限限制在5MB以下。

可访问 http://dev-test.nemikor.com/web-storage/support-test/ 测试浏览器的存储上限。


2、localStorage:生命周期是永久,这意味着除非用户显式操作在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。

信息共享:

不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是,页面及标签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。

local.storage.ts 源码:

session.storage.ts 源码

在文件app.module.ts中引用


在组件中使用







上一篇:[转载]博纳云(BonusCloud)Python工具抢激活码
下一篇:链克还能玩?
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2025-6-16 09:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表