1.localStorage
- 特点:
- 一旦存储永久存在
- 只能存基本数据类型(一般存储字符串),不能存储其他数据类型
- 可以跨页面通讯
- 常用方法:
- 增加一条数据
- 语法:
window.localStorage.setItem(key,value)
- 查找一条数据
- 语法:
window.loaclStorage.getItem(key)
- 返回值:存在该数据返回对应的值,不存在返回null
- 删除一条数据
- 语法:
window.localStorage.removeItem(key)
- 清空存储
- 语法:
window.localStorage.clear()
2.sessionStorage
- 特点:
- 临时存储,关闭浏览器后,存储内容自动消失
- 如果是从本页面跳转的页面,可以实现跨页面通讯
- 常用方法:
- 增加一条数据
- 语法:
window.sessionStorage.setItem(key,value)
- 查找一条数据
- 语法:
window.sessionStorage.getItem(key)
- 返回值:存在该数据返回对应的值,不存在返回null
- 删除一条数据
- 语法:
window.sessionStorage.removeItem(key)
- 清空存储
- 语法:
window.sessionStorage.clear()
3.cookie
- 特点:
- 只能存储字符串,并且有固定的格式
- 存储大小有限制(大约为4kb)
- 存储有时效性
- 操作必须依赖服务器
- 本地打开的页面不能操作cookie
- 必须要求页面在服务器打开
- 跟随前后端请求自动携带
- 只要cookie空间中有内容时,会在该页面与后端的交互中自动携带
- 前后端都可操作
- 前端可以使用JS来操作cookie
- 任何一个后端语言都可以操作cookie
- 存储依赖域名
- 设置cookie
document.cookie = 'key = value'
- 设置带有过期时间的cookie
var timer = new Date()
timer.setTime(timer.getTime() - 1000 * 60 * 60 * 8 + 1000 * 3)
document.cookie = 'key = value;expires=' + timer
* 注意: cookie在设置过期时间时,会按照世界标准时间设置,当前我们所在时区为东八区,较于世界标
准时间快 8 小时,所以在设置cookie的过期时间时需将时间往前调整8小时然后加上过期时间
4.三种方式的区别
4.1 出现时间
cookie:有JS的时候就存在
storage:有H5后才出现
4.2 存储大小
cookie:4k 左右
storage:20 左右
4.3 前后端交互
cookie:会跟随页面的请求自动携带
storage:不会跟随请求自动携带
4.4 过期时间
cookie:默认时会话级别,可以手动设置过期时间
storage:不能手动设置
4.5 前后端操作
cookie:前后端语言都能操作
storage:只能由 JS 操作
4.6 localStorage和sessionStorage的区别
4.6.1 过期时间
localStoage:永久存储,除非手动删除
sessionStorage:临时存储
4.6.2 跨页面通讯
loaclStorage:直接跨页面通讯
sessionStorage:只能时当前页面跳转的页面才能通讯
4.6.3 共同点
只能存储字符串,不能存储复杂数据类型