cookie、sessionStorage和localStorage的区别和使用
·
一、概念
浏览器存储:cookie,localStorage,sessionStorage
- Cookie :Cookie 是小甜饼的意思。顾名思义,cookie 确实非常小,它的大小限
制为 4KB 左右。它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码”,这通常就是通过在 Cookie 中存入一段辨别用户身份的数据来实现的。
- localStorage 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。
-
sessionStorage 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。
二、比较
| cookie | localStorage | sessionStorage | |
| 生命周期 | 一般由服务器生成,可设置失效时间。如果在浏览器端生成Cookie,默认是关闭浏览器后失效 | 除非被清除,否则永久保存 | 仅在当前会话下有效,关闭页面或浏览器后被清除 |
| 大小 | 4K左右 | 一般为5MB | 一般为5MB |
| 与服务器端通信 | 每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题 | 仅在客户端(即浏览器)中保存,不参与和服务器的通信 | 仅在客户端(即浏览器)中保存,不参与和服务器的通信 |
| 使用方法 | 自行封装 | 源生可用 | 源生可用 |
三、使用
cookie封装
//设置cookie
function setCookie(json, time) {
var data = new Date(new Date().getTime() + time * 24 * 60 * 60 * 1000).toUTCString()
for (key in json) {
document.cookie = key + "=" + json[key] + ";expires=" + data
}
}
//获取cookie
function getCookie(attr) {
return document.cookie.match(new RegExp("(^|\\s)" + attr + "=([^;]+)(;|$)"))[2]
}
//删除cookie
function removeCookie(attr) {
var json = {};
json[attr] = "";
setCookie(json, -1);
}
localStorage,sessionStorage

更多推荐
所有评论(0)