localStorage 是全局缓存,永久有效,这个毫无疑问。sessionStorage是在当前会话之间有效,当前会话是多长。即:a页面设置sessionStorage,只要是从a页面出发建立联系的之后的页面都可以拿到a页面缓存的数据。
举例说明:
a页面:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h2>a页面</h2>
<button id="btn">点击一下</button>
<script type="text/javascript">
document.getElementById('btn').onclick = function(){
sessionStorage.setItem('a','this is a');
window.location.href = 'b.html'
}
</script>
</body>
</html>
b页面:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h2>b页面</h2>
<div id="con"></div>
<script type="text/javascript">
var page = sessionStorage.getItem('a');
document.getElementById('con').innerHTML = page;
</script>
</body>
</html>
此时b就可以拿到a页面缓存的数据,并且把数据渲染到div#con中。
如果直接复制b页面的url,打开新的窗口,直接粘贴打开。此时b页面拿不到a页面的session缓存的值,这就是当前会话的意思。
如果再添加一个c页面,从b页面点击按钮跳转到c。c页面中依然可以拿到a页面sessionStorage的值。