sessionStorage 是HTML5新增会话存储对象,它sessionStorage属性允许你访问一个 session Storage 对象,用于保存同一窗口或标签页的数据。
sessionStorage 会在当前窗口或是标签页打开的期间一直保持,并且重新加载或恢复页仍会保持原来会话。当窗口或标签页关闭的时候会被删除。
特点
- 同源 sessionStorage受同源策略限制,跨域无法访问。
└── 跨域可以使用localStorage postMessage和iframe 来解决 - 不会随着http发送到服务器,只会存储在本地。
└──不需要的传到服务器的数据可以替代cookie,减小带宽 - sessionStorage使用key和value进行存储,value值必须为字符串,不为字符串会自动转型。
- 存储上限限制,不同浏览器限制均不一样,但是大多数上限限制为5MB
和localStorage区别
localStorage会将数据存储在本地,所以在关闭浏览器时不会被删除。会一直存在直到被明确删除。
sessionStorage API
// 保存数据到sessionStorage
sessionStorage.setItem('key', 'value');
// 从sessionStorage获取数据
var data = sessionStorage.getItem('key');
// 从sessionStorage删除保存的数据
sessionStorage.removeItem('key');
// 从sessionStorage删除所有保存的数据
sessionStorage.clear();
示例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<button id="btn">Clear</button>
</body>
<script>
window.onload = function(){
sessionStorage.setItem('test-key', 'test-value');
document.getElementById("btn").onclick = function(){
sessionStorage.removeItem('test-key');
}
}
</script>
</html>
我们可以在Application-Session Storage中查看到我们存的test-key
点击clear button以后test-key会被清除