localStorage与sessionStorage
2022-12-04 Javascript
localStorage与sessionStorage #
localStorage
和sessionStorage
是HTML5
提供的对于Web
存储的解决方案。
相同点 #
- 都与
HTTP
无关,是HTML5
提供的标准,当发起HTTP
请求时不会与Cookie
一样自动携带。 - 都是以键值对的形式存在,即
Key-Value
形式,常用的Api
也相同。 - 存储类型都是
String
类型,当进行存储时,会调用toString()
方法转为String
类型。 - 对于每个域容量是有限的,不同浏览器不一样,大部分存储为
5M
左右。
不同点 #
localStorage
用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。SessionStorage
会在用户关闭浏览器后,即会话结束后,数据失效;SessionStorage
与服务端Session
无关。
数据共享限制 #
- 不同浏览器无法共享localStorage或sessionStorage中的信息。
- 相同浏览器的不同页面间可以共享相同的
localStorage
(页面属于相同域名和端口)数据 - 不同页面或标签页间无法共享
sessionStorage
的信息 - 如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。
常用操作 #
- 储存数据
localStorage.setItem('key', 'value');
sessionStorage.setItem('key', 'value');
/**
* 由于存储数据会调用 toString() 方法
* Object 类型会存储为 [object Object] 字符串
* 所以进行存储时需调用 JSON.stringify() 转化为字符串
* 取出时调用 JSON.parse() 将字符串转回对象
*/
localStorage.setItem('key', 'value');
sessionStorage.setItem('key', 'value');
/**
* 由于存储数据会调用 toString() 方法
* Object 类型会存储为 [object Object] 字符串
* 所以进行存储时需调用 JSON.stringify() 转化为字符串
* 取出时调用 JSON.parse() 将字符串转回对象
*/
- 读取数据
localStorage.getItem('key');
sessionStorage.getItem('key');
localStorage.getItem('key');
sessionStorage.getItem('key');
- 删除数据
localStorage.removeItem('key');
sessionStorage.removeItem('key');
localStorage.removeItem('key');
sessionStorage.removeItem('key');
- 清空数据
localStorage.clear();
sessionStorage.clear();
localStorage.clear();
sessionStorage.clear();
版权属于: vincent
转载时须注明出处及本声明
Tags:# Javascript # html # 浏览器