sessionStorage可以使用setItem设置、getItem获取、removeItem删除、clear清空。
MDN解释
sessionStorage 属性允许你访问一个 session Storage 对象。它与 localStorage 相似,不同之处在于 localStorage 里面存储的数据没有过期时间设置,而存储在 sessionStorage 里面的数据在页面会话结束时会被清除。页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话。**在新标签或窗口打开一个页面时会在顶级浏览上下文中初始化一个新的会话,**这点和 session cookies 的运行方式不同。
通过sessionStorage保存的数据保存在浏览器中;所以创建一个sessionStorage用过后在某些情况需要清除sessionStorage;
sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。
- 不同tab之间就算相同url,sessionStorage也是不会共享的。sessionStorage只存在于当前会话中。
- 使用window.open或者点击链接跳转的页面,新页面的sessionStorage会拷贝老页面的。但两者之间并无关联,还是两个会话。
// 存储
sessionStorage.setItem("lastname", "Smith");
// 检索document.getElementById("result").innerHTML = sessionStorage.getItem("lastname");
//将指定的键名(key)从 sessionStorage 对象中移除。
sessionStorage.removeItem(key)
//清除 sessionStorage 对象所有的项
sessionStorage.clear()
sessionStorage不可以直接存储数组对象,需要先把数组对象转化为JSON字符串,取值时拿到字符串再去转成数组。
可以在存储时使用JSON.stringify()将对象转为字符串,而在取缓存时,配合JSON.parse()转回对象即可。
var obj= {
arr:[1,2,3,4,5,6,7,8,9]
};
// 存储值:将对象转换为Json字符串
sessionStorage.setItem('setItem', JSON.stringify(obj));
// 取值时:把获取到的Json字符串转换回对象
var getItem= JSON.parse(sessionStorage.getItem('setItem'));
console.log(getItem); // => {arr:[1,2,3,4,5,6,7,8,9]};
var userEntity = {
name: 'tom',
age: 22
};
// 存储值:将对象转换为Json字符串
sessionStorage.setItem('user', JSON.stringify(userEntity));
// 取值时:把获取到的Json字符串转换回对象
var userJsonStr = sessionStorage.getItem('user');
userEntity = JSON.parse(userJsonStr);
console.log(userEntity.name); // tom
整理的内容,部分引用内容未及时保存网址,如涉及版权,请联系删除