数据存储在用户浏览器中,在控制台中Application模块中查看。
设置、读取方便、甚至页面刷新不丢失数据
容量较大,sessionStorage约5M、localStorage约20M
只能存储字符串,可以将对象JSON.stringify() 编码后存储 Application模块:
本地储存分两种,一种是sessionStorage,以及localStorage.那么有什么异同点呢?
分别来说:
window.sessionStorage
生命周期为关闭浏览器窗口
在同一个窗口(页面)下数据可以共享
以键值对的形式存储使用
window.localStorage
声明周期永久生效,除非手动删除 否则关闭页面也会存在
可以多窗口(页面)共享(同一浏览器可以共享)
以键值对的形式存储使用
最大的区别:生命周期的不同,sessionStorage在浏览器存储数据的页面关闭以后存储的数据就消失了,但是localStorage即使浏览器存储数据的页面关闭了,数据也不会丢失,那怎么删除localStorage存储的数据呢?使用localStorage.removeItem(key)和localStorage.clear()语句来删除。
相同点:都是用来存储数据的并且代码语法结构相似。下面细说一下存储数据结构的代码:
sessionStorage相关语法:
存储数据:
sessionStorage.setItem(key, value) 1 获取数据:
sessionStorage.getItem(key) 1 删除数据:
sessionStorage.removeItem(key) 1 清空数据:(所有都清除掉)
sessionStorage.clear() 1 localStorage相关语法:
存储数据:
localStorage.setItem(key, value) 1 获取数据:
localStorage.getItem(key) 1 删除数据:
localStorage.removeItem(key) 1 清空数据:(所有都清除掉)
localStorage.clear() 1 写一个小demo: 写一个案例存储数据的案例:localStorage的语法是一样的所以在这里使用sessionStorage存储: 演示: 存储一个名字叫king的数据到本地,并且在控制台查询出来,最后删除
在这里点击存储数据,看Application中sessionStorage数据的变化:
点击获取数据:
点击删除数据或者删除所有数据:(因为只存储了一个数据,所以两个按钮的效果是一样的)
HTML部分:
<input type="text" name="" id=""> <button class="set">存储数据</button> <button class="get">获取数据</button> <button class="delete">删除数据</button> <button class="delete-all">删除所有数据</button> JS部分: var ipt = document.querySelector('input'); var set = document.querySelector('.set'); // 点击存储数据按钮 给本地存储一条数据(通过键值对存储 ,键随意设置,值是文本框的值) set.addEventListener('click', function() { var content = ipt.value; sessionStorage.setItem('uname', content); }); // 点击获取数据按钮 获取存储的数据(通过键来获取) var get = document.querySelector('.get'); get.addEventListener('click', function() { console.log(sessionStorage.getItem('uname')); }); // 点击删除数据按钮 删除指定键对应的值 var del = document.querySelector('.delete'); del.addEventListener('click', function() { sessionStorage.removeItem('uname'); }); // 点击删除所有数据,删除所有的键值对 var del_all = document.querySelector('.delete-all'); del_all.addEventListener('click', function() { sessionStorage.clear(); });