本地存储#
随着互联网的快速发展,基于网页的应用越来越普遍,同时也变得越来越复杂,为了满足各种各样的需求,会经常性地在本地存储大量的数据,HTML5规范提出了相关解决方案。
本地存储特性#
- 数据存储在用户浏览器中
- 设置、读取方便、甚至页面刷新不丢失数据
-
容量较大,
sessionStorage
约5M,localStorage
约20M - 只能存储字符串,可以将对象JSON.stringify()编码后存储
window.sessionStorage#
- 生命周期为关闭浏览器窗口
- 在同一个窗口(页面)下数据可以共享
- 以键值对的形式存储使用
存储数据:#
javascriptsessionStorage.setItem(key,value)
获取数据:#
javascriptsessionStorage.getItem(key)
删除数据:#
javascriptsessionStorage.removeItem(key)
删除所有数据:#
javascriptsessionStorage.clear()
window.localStorage#
- 生命周期永久生效,除非手动删除,否则关闭页面也会存在
- 可以 多窗口(页面) 共享(同一浏览器可以共享)
- 以键值对的形式存储使用
- 使用方法与sessionStorage相同
存储数据:#
javascriptlocalStorage.setItem(key,value)
获取数据:#
javascriptlocalStorage.getItem(key)
删除数据:#
javascriptlocalStorage.removeItem(key)
删除所有数据:#
javascriptlocalStorage.clear()
存储复杂数据类型#
需要将复杂数据类型转换为JSON字符串,再存储到本地
而从本地取得的复杂数据类型的JSON字符串,需要重新转为对象方可使用
JavaScript// 对象->JSON字符串 JSON.stringify(复杂数据类型) // JSON字符串->对象 JSON.parse(JSON字符串)
JSON对象:属性和值都有双引号
案例:记住用户名#
若勾选记住用户名,下次用户打开浏览器,就在文本框里面自动显示上次登陆的用户名
分析
- 把数据存起来,用到本地存储
- 关闭页面,也可以显示用户名,所以用到localStorage
- 打开页面,先判断是否有这个用户名,如果有,就在表单里面显示用户名,并且勾选复选框
- 当复选框发生改变时change事件
- 若勾选,就存储,否则就移除