1.介绍
sessionStorage 是HTML5新增的一个会话存储对象,用于临时保存同一窗口(或标签页)的数据(key/value),在关闭窗口或标签页之后将会删除这些数据。是window下的对象
seesionStorage只能存储字符串的数据,对于JS中常用的数组或对象却不能直接存储,我们可以通过JSON.stringify()将json数据类型转化成字符串,再存储到storage中就可以了,获取数据时再使用JSON.parse()将读取的字符串转换成对象即可。(数组本质上也是对象类型)
2.特点:
1. 只在本地存储。seesionStorage的数据不会跟随HTTP请求一起发送到服务器,只会在本地生效,并在关闭标签页后清除数据。
2. 存储方式。seesionStorage的存储方式采用key、value的方式。value的值必须为字符串类型。
3. 存储上限限制:不同的浏览器存储的上限也不一样,但大多数浏览器把上限限制在5MB以下。
3.操作
存储数据:使用setItem或者属性形式
sessionStorage.setItem('a','111');
sessionStorage['a'] ='111';
读取数据:使用getItem或者属性形式
sessionStorage.getItem("a")
sessionStorage["a"]
删除数据:使用removeItem移除指定的数据
sessionStorage.removeItem("a");
删除所有数据
sessionStorage.clear()
进行删除操作之后,再读取数据就会发现该删的已经删了。 没有数据的话,读数据会返回null。
4. 小案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>浏览器存储本地数据</title>
</head>
<body>
</body>
<script type="text/javascript" src="tools/jquery-2.1.4.min.js"></script>
<script type="text/javascript">
var data={
a:"111",
b:"2222"
}
var data1=[{name:"zsh",age:"12"},
{name:"zzz",age:"23"},
{name:"wer",age:"67"}];
// 存储值:将对象转换为Json字符串
sessionStorage.setItem("user", JSON.stringify(data));
sessionStorage.setItem("user1", JSON.stringify(data1));
// 取值时:把获取到的Json字符串转换回对象
var getdata = JSON.parse(sessionStorage.getItem("user"));
var getdata1 = JSON.parse(sessionStorage.getItem("user1"));
console.log(getdata); //{a: "111", b: "2222"}
console.log(getdata1); //返回数组
//删除所有数据
sessionStorage.clear();
var getdata2 = JSON.parse(sessionStorage.getItem("user1"));
console.log(getdata2); //null
</script>
</html>
运行结果:
结尾总结:
存储在 sessionStorage 里面的数据在页面会话结束时会被清除。
页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话。
在新标签或窗口打开一个页面时会复制顶级浏览会话的上下文作为新会话的上下文,这点和 session cookies 的运行方式不同。
打开多个相同的URL的Tabs页面,会创建各自的sessionStorage。
关闭对应浏览器tab,会清除对应的sessionStorage。
// 保存数据到 sessionStorage
sessionStorage.setItem('key', 'value');
// 从 sessionStorage 获取数据
let data = sessionStorage.getItem('key');
// 从 sessionStorage 删除保存的数据
sessionStorage.removeItem('key');
// 从 sessionStorage 删除所有保存的数据
sessionStorage.clear();