原文链接:https://note.noxussj.top/?source=cloudtencent
浏览器缓存主要包含 cookie、 在 HTML5 新标准中新增了本地存储 localStorage 和会话存储 sessionStorage。
cookie 是一些缓存数据,主要存储在你的电脑中。当你发起网络请求时也会携带当前域名端口下的 cookie 信息传输给后端。
默认情况下,没有设置过期时间,当浏览器关闭时 cookie 就会被删除(关闭当前选项卡不会删除)。
document.cookie = 'name=xiaoming' // 'name=xiaoming'
document.cookie = 'age=18' // 'name=xiaoming; age=18'
// Thu Jan 12 2023 17:22:34 GMT+0800 (中国标准时间)
const expires = new Date(new Date().getTime() + 1000 * 60 * 10)
document.cookie = 'class=A; expires= ' + expires
const cookie = document.cookie // 'name=xiaoming; age=18; class=A'
相当于把旧的 cookie 进行了删除,在创建新的 cookie
document.cookie = 'name=libai' // 'age=18; class=A; name=libai'
直接给 cookie 设置一个已过期的时间,那么关闭浏览器后则会被删除
document.cookie = 'class=A; expires= Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)'
每个域名端口下都会存在一份独立的 localStorage 数据,它是没有过期时间的,只要你不手动清除,那么它会永远都在。localStorage 使用上会比 cookie 要简单。
localStorage.setItem('name', 'xiaoming')
localStorage.getItem('name') // 'xiaoming'
localStorage.setItem('name', 'libai')
localStorage.removeItem('name')
localStorage.clear()
每个域名端口下都会存在一份独立的 sessionStorage 数据,它是有过期时间的,当你关闭当前页面(包含浏览器选项卡)时,sessionStorage 缓存会被销毁。它的用法几乎和 localStorage 是相同的。
sessionStorage.setItem('name', 'xiaoming')
sessionStorage.getItem('name') // 'xiaoming'
sessionStorage.setItem('name', 'libai')
sessionStorage.removeItem('name')
sessionStorage.clear()
三者都是存储字符串类型,复杂对象可以采用 json 的 stringify 和 parse 方法来做处理
cookie:请求时一般会携带在 header 中
localStorage、sessionStorage:请求时不会携带
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。