浏览器本地存储
知识点: webStorage
-
存储内容大小一般支持5MB左右(不同浏览器可能还不一样)
-
浏览器端通过 Window.sessionStorage 和 Window.localStorage 属性来实现本地存储机制。
-
相关API:
-
xxxxxStorage.setItem('key', 'value');
该方法接受一个键和值作为参数,会把键值对添加到存储中,如果键名存在,则更新其对应的值。 -
xxxxxStorage.getItem('person');
该方法接受一个键名作为参数,返回键名对应的值。
-
xxxxxStorage.removeItem('key');
该方法接受一个键名作为参数,并把该键名从存储中删除。
-
xxxxxStorage.clear()
该方法会清空存储中的所有数据。
-
-
备注:
- SessionStorage存储的内容会随着浏览器窗口关闭而消失。
- LocalStorage存储的内容,需要手动清除才会消失。
xxxxxStorage.getItem(xxx)
如果xxx对应的value获取不到,那么getItem的返回值是null。JSON.parse(null)
的结果依然是null。
案例:localStorage
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>localStorage</h1>
<h4>localStorage关闭浏览器仍然不会清除</h4>
<h4>清除的方式:1.调用API清除 2 清理浏览器缓存</h4>
<button onclick="saveData()">点击存储</button>
<button onclick="readData()">点击读取</button>
<button onclick="deleteData()">点击删除</button>
<button onclick="deleteAllData()">删除所有</button>
<script>
let p = {name: '张三', age: 54}
function saveData() {
// localStorage.setItem 会将所有的value都转化为toString()
// 在操作对象时需要使用JSON.stringify()包装一下
localStorage.setItem('msg', '小明')
localStorage.setItem('msg1', 888)
localStorage.setItem('msg2', JSON.stringify(p))
}
function readData() {
// 当读取一个不存在的key时,将会返回null
console.log(localStorage.getItem('msg'))
console.log(localStorage.getItem('msg1'))
let obj = JSON.parse(localStorage.getItem('msg2'))
console.log(obj)
}
function deleteData() {
localStorage.removeItem('msg')
}
function deleteAllData() {
localStorage.clear()
}
</script>
</body>
</html>
案例:sessionStorage
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>SessionStorage</h1>
<h4>SessionStorage浏览器的关闭而消失</h4>
<button onclick="saveData()">点击存储</button>
<button onclick="readData()">点击读取</button>
<button onclick="deleteData()">点击删除</button>
<button onclick="deleteAllData()">删除所有</button>
<script>
let p = {name: '张三', age: 54}
function saveData() {
// sessionStorage.setItem 会将所有的value都转化为toString()
// 在操作对象时需要使用JSON.stringify()包装一下
sessionStorage.setItem('msg', '小明')
sessionStorage.setItem('msg1', 888)
sessionStorage.setItem('msg2', JSON.stringify(p))
}
function readData() {
// sessionStorage.setItem 会将所有的value都转化为toString()
// 在操作对象时需要使用JSON.stringify()包装一下
console.log(sessionStorage.getItem('msg'))
console.log(sessionStorage.getItem('msg1'))
let obj = JSON.parse(sessionStorage.getItem('msg2'))
console.log(obj)
}
function deleteData() {
sessionStorage.removeItem('msg')
}
function deleteAllData() {
sessionStorage.clear()
}
</script>
</body>
</html>