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>

session 跨域 redis sessionstorage跨域_标签页

我们可以在Application-Session Storage中查看到我们存的test-key

session 跨域 redis sessionstorage跨域_session 跨域 redis_02

点击clear button以后test-key会被清除