cookie、sessionStoreage、localStorage

cookie、sessionStoreage、localStorage

  作用与特性 存储数量及大小 api
cookie

● 存储用户信息,获取数据需要与服务器建立连接。

● 可存储的数据有限,且依赖于服务器,无需请求服务器的数据尽量不要存放在cookie中,以免影响页面性能。

● 可设置过期时间。

● 最好将cookie控制在4095B以内,超出的数据会被忽略。

● IE6或更低版本最多存20个cookie; IE7及以上版本最多可以有50个;Firefox最多50个;chrome和Safari没有做硬性限制。


//设置cookie,改cookie也用同一个,覆盖原值
function setCookie(cookieName, cookieValue) {
var expires = "1"; //过期时间,此处设置有效期为1天
var exp = new Date();
exp.setTime(exp.getTime() + expires * 24 * 60 * 60 * 1000); //设置失效时间(不设置的话,浏览器关闭后此cookie将丢失)
document.cookie = cookieName + "=" + escape(cookieValue) + ";expires=" + exp.toGMTString() + ";path=" + "/";
}

 

//读取cookie
function getCookie(cookieName){
var arr,reg=new RegExp("(^| )"+cookieName+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}


//删除cookie
function delCookie(cookieName ){
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(cookieName );
if(cval!=null)
document.cookie= cookieName + "="+cval+";expires="+exp.toGMTString()+";path="+"/";

 

 

sessionStorage

● 存储客户端信息,无需请求服务器。

● 数据保存在当前会话,刷新页面数据不会被清除,结束会话(关闭浏览器、关闭页面、跳转页面)数据失效。

5M左右,各浏览器的存储空间有差异。

// 保存数据到 sessionStorage

sessionStorage.setItem('key', 'value');

// 从 sessionStorage 获取数据

let data = sessionStorage.getItem('key');

// 从 sessionStorage 删除保存的数据

sessionStorage.removeItem('key');

// 从 sessionStorage 删除所有保存的数据

sessionStorage.clear();

localStorage

● 存储客户端信息,无需请求服务器。

● 数据永久保存,除非用户手动清理客户端缓存。

● 开发者可自行封装一个方法,设置失效时间。

同sessionStorage

// 保存数据到 localStorage

localStorage.setItem('key', 'value');

// 从 localStorage 获取数据

let data = localStorage.getItem('key');

// 从 localStorage 删除保存的数据

localStorage.removeItem('key');

// 从 localStorage 删除所有保存的数据

localStorage.clear();

 

posted on 2021-04-12 21:37  xxcxxc  阅读(120)  评论(0编辑  收藏  举报