JavaScript全解析——本地存储✔🔋🔋🔋(localStorage~sessionStorage~cookie)

●就是浏览器给我们提供的可以让我们在浏览器上保存一些数据
●常用的本地存储
(localStorage~sessionStorage~cookie)

1-localStorage

=> 特点:

-> 长期存储,除非手动删除否则会一直保存在浏览器中 清除缓存或者卸载浏览器也就没有了
-> 可以跨页面通讯, 也就是说在一个页面写下在另一个页面可以读取

=> 保存

-> 语法: window.localStorage.setItem(名字,值)
-> 注意: 只能保存字符串类型的数据,其它数据类型不能被保存

=> 获取

-> 语法: window.localStorage.getItem(名字)
-> 注意: 保存的是字符串类型,取出来的也是字符串类型

-> 返回值:

如果localStorage 中有这条数据 拿到的就是这个条数据的值

如果localStorage 中没有这条数据 拿到的就是 null

=> 删除

-> 语法: window.localStorage.removeItem(名字)
-> 作用: 就是删除localStorage中该条数据

 
// 保存
var num = 200
window.localStorage.setItem('a', num)
// 获取
var res = window.localStorage.getItem('b')
console.log(res);
console.log(typeof res);
// 删除
window.localStorage.removeItem('a')

2- sessionStorage

=> 特点:

-> 会话存储,就是浏览器关闭就没有了
-> 可以跨页面通讯(有要求)
-> 要求:必须是本页面跳转才可以

=> 保存

-> 语法: window.sessionStorage.setItem(名字,值)
-> 注意: 只能保存字符串类型的数据,其它数据类型不能被保存

=> 获取

-> 语法: window.sessionStorage.getItem(名字)
-> 注意: 保存的是字符串类型,取出来的也是字符串类型

-> 返回值:

如果 sessionStorage 中有该条数据 获取到的就是该条数据的值

如果 sessionStorage 中没有该条数据 拿到的就 null

=> 删除
-> 语法: window.sessionStorage.removeItem(名字)
-> 作用: 就是删除 sessionStorage 中的这条数据
// 保存
window.sessionStorage.setItem('a', 300)
// 获取
var res = window.sessionStorage.getItem('a')
console.log(res);
console.log(typeof res);
// 删除
window.sessionStorage.removeItem('a')

3- cookie

特点:

只能存储字符串, 有固定的格式
=> key=value; key2=value2; key3=value3

cookie 存储大小有限制
=> 4KB 左右

存储的时效性
=> 默认是会话级别时效, 可以手动设置过期时间

操作必须依赖服务器
=> 本地打开的页面是不能操作 cookie
=> 也就是存存不上 , 读读不出来
=> 要求页面必须在服务器打开

跟随前后端请求自动携带
=> 只要 cookie 空间中有内容的时候
=> 会在该页面和后端交互的过程中自动携带

前后端操作
=> 前端可以使用 JS 来操作
=> 任何一个后端语言都可以操作

存储依赖域名
=> 哪一个域名存储, 哪一个域名使用
=> 不能跨域名通讯

cookie 的操作

设置一条 cookie
●语法: document.cookie = 'key=value'

// 设置一条 cookie
// 设置了一条叫做 a 的 cookie 存储的值是 100
document.cookie = 'a=100'
// 设置了一条叫做 b 的 cookie 存储的值是 200
document.cookie = 'b=200'

// 设置一条带有过期时间的 cookie
var time = new Date()
document.cookie = 'a=100;expires=' + time
// 设置一条 30s 以后过期的 cookie
var time = new Date()
time.setTime(time.getTime() - 1000 * 60 * 60 * 8 + 1000 * 30)
// console.log(time)
document.cookie = 'a=100;expires=' + time
获取 cookie

●语法: document.cookie
● 返回值: 完整的 cookie 字符串

console.log(document.cookie)

Cookie、session和localStorage、sessionStorage之间的区别

共同点:都是保存在浏览器端、且同源的
1、存储路径:cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递,而sessionStorage和  localStorage不会自动把数据发送给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下
2、存储大小限制也不同,cookie数据不能超过4K,同时因为每次http请求都会携带cookie、所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大
3、数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭之前有效;localStorage:始终有效,窗口或浏览器关闭也一直保存,因
此用作持久数据;cookie:只在设置的cookie过期时间之前有效,即使窗口关闭或浏览器关闭
posted @ 2024-07-15 22:30  Mahmud(مەھمۇد)  阅读(27)  评论(0编辑  收藏  举报