LocalStorge和sessionStorage之间的区别
localStorage
localStorage的生命周期是永久性的,也就是说使用localStorage存储数据,数据会被永久保存,数据不会因为窗口或浏览器的关闭而消失,除非主动的去删除数据。
localStorage有length属性,可以通过控制台查看其有多少条记录的数据。
var storage = null;
storage.setItem("key","value") //调用setItem方法存储数据
storage.getItem("key") //调用getItem方法获取key的值
stroage.removeItem("key") //删除key对应的值
stroage.clear() //清空数据
sessionStorage
sessionStorage的生命周期相比localStorage来说很短,其周期在窗口关闭时结束。也就是说,当浏览器窗口关闭,sessionStorage的使命就已经结束,其保留的数据也会被清除。
sessionStorage也拥有length属性,两者的使用方法也是一致的,但和localstorage比较,仍有一些区别。
页面刷新不会消除已获得的数据
这里我写了两个html文件(test1.html / test2.html)来进行说明:
因为篇幅问题,所以只取了部分需要注意的代码段
这是test1.html的部分代码:
<body>
<button>跳转按钮</button>
<div>页面的作用:在 sessionStorage 中存数据</div>
<script>
var Data = window.sessionStorage;
console.log(Data)
var str = 'sessionData'
// sessionStorage 存储数据
Data.setItem('code',str)
document.getElementsByTagName('button')[0].onclick = function(){
window.location.href = './test2.html'
}
</script>
</body>
test2.html的部分代码:
<body>
<div>我是test2页面</div>
<script>
var sessionData = sessionStorage.getItem('code')
console.log(sessionData)
console.log(sessionStorage.getItem('code'))
</script>
</body>
打开test1页面,可以看见跳转按钮以及一段文字:页面的作用:在 sessionStorage 中存数据;
打开控制器,可以看见已经传入了 code 以及它的值 sessionData;
这时点击跳转按钮,会看见页面刷新,进入test2页面,显示“我是test2页面”
sessionStorage 在test1窗口关闭后;就保存数据了。换一个新的窗口(test2);也不会有数据改变
关闭后不保存数据;是针对整个浏览器来说的
sessionStorage.getItem(key) 获取sessionStorage的数据中value值