随着互联网的快速发展,基于网页的应用越来越普遍,同时也变得越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。
本地存储特性:
- 数据存储在用户浏览器中
- 设置、读取方便、甚至页面刷新不丢失数据
- 容量较大,sessionStorage约5M,localStorage约为20M
- 只能存储字符串,可以将对象JSON.stringify()编码后存储
window.sessionStorage
- 生命周期为关闭浏览器窗口
- 在同一个窗口(页面)下数据可以共享
- 以键值的形式存储使用
存储数据:
代码语言:javascript复制sessionStorage.setItem(key, value);
获取数据:
代码语言:javascript复制sessionStorage.getItem(key);
删除数据:
代码语言:javascript复制sessionStorage.removeItem(key);
删除所有数据:
代码语言:javascript复制sessionStorage.clear();
演示案例:
代码语言:javascript复制<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="text">
<button class="set">存储数据</button>
<button class="get">获取数据</button>
<button class="remove">删除数据</button>
<button class="del">清空所有数据</button>
<script>
var ipt = document.querySelector('input');
var set = document.querySelector('.set');
var get = document.querySelector('.get');
var remove = document.querySelector('.remove');
var del = document.querySelector('del')
set.addEventListener('click', function () {
//当我们点击了之后就可以把表单里面的值存储起来
var val = ipt.value;
sessionStorage.setItem('uname', val);
});
get.addEventListener('click', function () {
console.log(sessionStorage.getItem('uname'));
});
remove.addEventListener('click', function () {
sessionStorage.removeItem('uname');
});
del.addEventListener('click', function () {
sessionStorage.clear();
});
</script>
</body>
</html>
window.localStorage
- 生命周期永久有效,除非手动删除,否则关闭页面也会存在
- 可以多窗口(页面)共享(同一个浏览器可以共享)
- 以键值对的形式存储使用
存储数据:
代码语言:javascript复制localStorage.setItem(key, value);
获取数据:
代码语言:javascript复制localStorage.getItem(key);
删除数据:
代码语言:javascript复制localStorage.removeItem(key);
删除所有数据:
代码语言:javascript复制localStorage.clear();
演示案例
代码语言:javascript复制<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="text">
<button class="set">存储数据</button>
<button class="get">获取数据</button>
<button class="remove">删除数据</button>
<button class="del">清空所有数据</button>
<script>
var ipt = document.querySelector('input');
var set = document.querySelector('.set');
var get = document.querySelector('.get');
var remove = document.querySelector('.remove');
var del = document.querySelector('del')
set.addEventListener('click', function () {
//当我们点击了之后就可以把表单里面的值存储起来
var val = ipt.value;
localStorage.setItem('uname', val);
});
get.addEventListener('click', function () {
console.log(localStorage.getItem('uname'));
});
remove.addEventListener('click', function () {
localStorage.removeItem('uname');
});
del.addEventListener('click', function () {
localStorage.clear();
});
</script>
</body>
</html>