html5
中的Web Storage
包括了两种存储方式:sessionStorage
和localStorage
。
Web storage和Cookie的区别
Web Storage
的概念和Cookie
相似,区别是它是为了更大容量存储设计的。Cookie
的大小是受限的,并且每次你请求一个新的页面的时候Cookie
都会被发送过去,这样无形中浪费了带宽,另外Cookie
还需要指定作用域,不可以跨域调用。
除此之外,Web Storage
拥有setItem
,getItem
,removeItem
,clear
等方法,不像cookie
需要前端开发者自己封装setCookie
,getCookie
。
localStorage
判断浏览器是否支持localStorage
if(window.localStorage) {
alert("浏览支持localStorage")
} else {
alert("浏览暂不支持localStorage")
}
//或者
if(typeof window.localStorage === 'undefined') {
alert("浏览暂不支持localStorage")
}
localStorage的属性方法
属性方法 | 说明 |
---|---|
localStorage.length |
获得storage 中的个数 |
localStorage.key(n) |
获得storage 中第n 个元素对的键值(第一个元素是0 ) |
localStorage.key |
获取键值key 对应的值 |
localStorage.getItem(key) |
获取键值key 对应的值 |
localStorage.setItem(key, value) |
添加数据,键值为key ,值为value
|
localStorage.removeItem(key) |
移除键值为key 的数据 |
localStorage.clear() |
清除所有数据 |
sessionStorage
和服务器端使用的session
类似,是一种会话级别的缓存,关闭浏览器会数据会被清除。不过有点特别的是它的作用域是窗口级别的,也就是说不同窗口间的sessionStorage
数据不能共享的。使用方法(和localStorage
完全相同)
sessionStorage的属性方法
属性方法 | 说明 |
---|---|
sessionStorage.length |
获得storage 中的个数 |
sessionStorage.key(n) |
获得storage 中第n 个元素对的键值(第一个元素是0 ) |
sessionStorage.key |
获取键值key 对应的值 |
sessionStorage.getItem(key) |
获取键值key 对应的值 |
sessionStorage.setItem(key, value) |
添加数据,键值为key ,值为value
|
sessionStorage.removeItem(key) |
移除键值为key 的数据 |
sessionStorage.clear() |
清除所有数据 |
sessionStorage和localStorage的区别
-
sessionStorage
用于本地存储一个会话(session
)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage
不是一种持久化的本地存储,仅仅是会话级别的存储。当用户关闭浏览器窗口后,数据立马会被删除。 -
localStorage
用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。第二天、第二周或下一年之后,数据依然可用。
参考文章
https://www.jianshu.com/p/c94e539a552f
https://juejin.im/entry/59db9bac51882578db27ad4f
网友评论