本地储存
为什么需要本地存储呢:
数据存储在用户浏览器中,在控制台中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();
});