本地存储sessionStorage、localStorage

本地存储特性

  1. 数据存储在用户浏览器中
  2. 设置、读取方便、甚至页面刷新不丢失数据
  3. 容量较大,sessionStorage约5M、localStorage约20M
  4. 只能存储字符串,可以将对象JSON.stringify()编码后存储

window.sessionStorage

  1. 生命周期为关闭浏览器窗口
  2. 在同一个窗口(页面)下数据可以共享
  3. 以键值对的形式存储使用

存储数据:sessionStorage.setItem(key, value)

获取数据:sessionStorage.getItem(key)

删除数据:sessionStorage.removeItem(key)

清除数据:sessionStorage.clear()

window.localStorage

  1. 生命周期永久生效,除非手动删除,否则关闭页面也会存在
  2. 可以多窗口(页面)共享(同一个浏览器可以共享)
  3. 以键值对的形式存储使用

存储数据:localStorage.setItem(key, value)

获取数据:localStorage.getItem(key)

删除数据:localStorage.removeItem(key)

清除数据:localStorage.clear()

案例:记住用户名

如果勾选记住用户名,下次用户打开浏览器,就在文本框里面自动显示上次登录的用户名。

案例分析:

  1. 把数据存起来,用到本地存储
  2. 关闭页面,也可以显示用户名,所以用到localStorage
  3. 打开页面,先判断是否有这个用户名,如果有,就在表单里面显示用户名,并且勾选复选框
  4. 当复选框发生改变的时候change事件
  5. 如果勾选,就存储,否则就移除
 1 <input type = "text" id="username" /> 
 2   <input type="checkbox" name="" id="remeber" />记住用户名
 3   <script>
 4     var username = document.querySelector('#username');
 5     var remember = document.querySelector('#remember');
 6     if(localStorage.getItem('username')) {
 7       username.value = localStorage.getItem('username');
 8       remember.checked = true;
 9     }
10     remember.addEventListener('change', function() {
11       if (this.checked) {
12         localStorage.setItem('username', username.value);
13       } else {
14         localStorage.removeItem('username');
15       }
16     })
17   </script>
原文地址:https://www.cnblogs.com/guwufeiyang/p/13096263.html