吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 868|回复: 0
收起左侧

[讨论] 前端:localStorage和sessionStorage

[复制链接]
sqbl 发表于 2021-11-8 19:54
本地存储(local和session)
html5中的Web Storage包括了两种存储方式:

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

sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问
并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅是会话级别的存储。只允许同一窗口访问。

而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。同源可以读取并修改localStorage数据。

本地存储特性

1、数据存储在浏览器中。

2、设置、读取方便、甚至页面刷新不丢失数据。

3、容量比Cookie大Cookie是一段不超过4KB的小型[文本](https://baike.baidu.com/item/文本/5443630)数据,由一个名称(Name)、一个值(Value),sessionStorage约5M、localStorage约20M。

4、localStorage和sessionStorage存储数据的格式都是以字符串的形式来存储的,,可以将对象JSON.stringify() 编码后存储。
操作方式:
存:
[JavaScript] 纯文本查看 复制代码
  var obj = {"name":"xiaoming","age":"16"}
  localStorage.setItem("userInfo",JSON.stringify(obj));

取:
[JavaScript] 纯文本查看 复制代码
 var user = JSON.parse(localStorage.getItem("userInfo"))

删:
[JavaScript] 纯文本查看 复制代码
localStorage.remove("userInfo);
localStorage具体:
[JavaScript] 纯文本查看 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<!-- HTML代码,不做解释 -->
		<input type="text" name="" id="" value="" class="ipt" />
		<button class="setItem" type="button">储存</button>
		<button class="getItem" type="button">显示</button>
		<button class="removeItem" type="button">删除</button>
		<button class="clear" type="button">删除全部</button>
		<script>
		/*localStorage:
		生命周期为永久,不删除不消失,必须在相同地址的页面,也不可更换浏览器
		*/
		//获取节点
			var ipt = document.querySelector('.ipt')
			var set = document.querySelector('.setItem')
			var get = document.querySelector('.getItem')
			var remove = document.querySelector('.removeItem')
			var deall = document.querySelector('.clear')
			//监听注册方式绑定点击事件
			set.addEventListener('click', function() {
				//给input内容定义变量名
				var eal = ipt.value;
				//setItem储存,第一个值为key,也就是索引
				window.localStorage.setItem('text', eal)
			});
			//getItem获取,根据key得到值
			get.addEventListener('click', function() {
				alert('您储存的数据为:' + window.localStorage.getItem('text'))
			})
			//removeItem删除,删除key的值
			remove.addEventListener('click', function() {
				window.localStorage.removeItem('text')
			})
			//clear删除全部,不需要key全都删
			deall.addEventListener('click', function() {
				window.localStorage.clear()
			})
		</script>
	</body>
</html>

sessionStorage具体:
[JavaScript] 纯文本查看 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<!-- HTML代码,不做解释 -->
		<input type="text" name="" id="" value="" class="ipt" />
		<button class="setItem" type="button">储存</button>
		<button class="getItem" type="button">显示</button>
		<button class="removeItem" type="button">删除</button>
		<button class="clear" type="button">删除全部</button>
		<script>
		/*sessionStorage:
		1、生命周期为关闭浏览器窗口
		
		2、在同一个窗口(页面)下数据可以共享
		
		3、以键值对的形式存储使用
		*/
		//获取节点
			var ipt = document.querySelector('.ipt')
			var set = document.querySelector('.setItem')
			var get = document.querySelector('.getItem')
			var remove = document.querySelector('.removeItem')
			var deall = document.querySelector('.clear')
			//监听注册方式绑定点击事件
			set.addEventListener('click', function() {
				//给input内容定义变量名
				var eal = ipt.value;
				//setItem储存,第一个值为key,也就是索引
				window.sessionStorage.setItem('text', eal)
			});
			//getItem获取,根据key得到值
			get.addEventListener('click', function() {
				alert('您储存的数据为:' + window.sessionStorage.getItem('text'))
			})
			//removeItem删除,删除key的值
			remove.addEventListener('click', function() {
				window.sessionStorage.removeItem('text')
			})
			//clear删除全部,不需要key全都删
			deall.addEventListener('click', function() {
				window.sessionStorage.clear()
			})
		</script>
	</body>
</html>

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
柒呀柒 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 20:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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