1、本地存储特性
1. 数据存储在用户浏览器中
2. 设置,读取方便,设置页面刷新不丢失数据
3. 容量较大,sessionStorage约5M,localStorage约20M
4. 只能存储字符串,可以将对象JSON.stringify() 编码后存储
2、window.sessionStorage
1.生命周期为关闭浏览器窗口
2.在同一个窗口(页面)下数据可以共享
3.以键值对的形式存储使用
存储数据:
sessionStorage.setItem(key,value);
例:sessionStorage.setItem('uname','andy');
获取数据:
sessionStorage.getItem(key);
例:sessionStorage.getItem('uname');
删除数据:
sessionStorage.removeItem(key);
例:sessionStorage.removeItem('uname');
删除所有数据:
sessionStorage.clear(); //尽量避免使用
3、window.localStorage
1. 生命周期永久生效,除非手动删除,否则关闭页面也会存在
2. 可以多窗口(页面)共享(同一浏览器可以共享)
3. 以键值对的形式存储使用
存储数据:
localStorage.setItem(key,value);
例:localStorage.setItem('uname','andy');
获取数据:
localStorage.getItem(key);
例:localStorage.getItem('uname');
删除数据:
localStorage.removeItem(key);
例:localStorage.removeItem('uname');
删除所有数据:
localStorage.clear(); //尽量避免使用
记住用户名案例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>Document</title> <style> input { vertical-align: middle; } </style> </head> <body> <input type="text" id="txt" /> <input type="checkbox" id="check" /> <label for="check">记住用户名</label> <script> var txt = document.querySelector("#txt"); var check = document.querySelector("#check"); var label = document.querySelector("label"); txt.onblur = function() { var text = txt.value; // console.log(text); localStorage.setItem("uname", text); }; (function() { var user = localStorage.getItem("uname"); if (user) { txt.value = user; check.checked = true; } else { txt.value = null; } })(); </script> </body> </html>