cookie一般使用在用户登录时保存用户的信息,它的内存空间非常小只用有4kb的空间,早期的存贮一般都是用的cookie来存贮数据
关于cookie我们在使用的时候回设置以 秒 小时 天 等不同的时间单位,通过getsec(str) 个方法我们可以传s7 d7 h4 等不同时间单位
var Cookie = {
setCookie: function(key, val, time) { //设置cookie方法 ,过期日期的时间
var strsec = getsec(time);
var exp = new Date();//获取当前时间
exp.setTime(exp.getTime() + strsec * 1);
document.cookie = key + "=" + val + ";expires=" + exp.toGMTString(); //设置cookie
},
getCookie: function(key) { //获取cookie方法
/*获取cookie参数*/
var cookies = document.cookie.replace(/[ ]/g, ""); //获取cookie,并且将获得的cookie格式化,去掉空格字符
var arrCookie = cookies.split(";") //将获得的cookie以"分号"为标识 将cookie保存到arrCookie的数组中
var tips; //声明变量tips
for(var i = 0; i < arrCookie.length; i++) { //使用for循环查找cookie中的tips变量
var arr = arrCookie[i].split("="); //将单条cookie用"等号"为标识,将单条cookie保存为arr数组
if(key == arr[0]) { //匹配变量名称,其中arr[0]是指的cookie名称,如果该条变量为tips则执行判断语句中的赋值操作
tips = arr[1]; //将cookie的值赋给变量tips
break; //终止for循环遍历
}
}
return tips;
},
deleteCookie: function(key) { //删除cookie方法
var date = new Date(); //获取当前时间
date.setTime(date.getTime() - 10000); //将date设置为过去的时间
document.cookie = key + "=v; expires =" + date.toGMTString(); //设置cookie
}
};
function getsec(str) {
var str1 = str.substring(1, str.length) * 1;
var str2 = str.substring(0, 1);
if(str2 == "s") {
return str1 * 1000;
} else if(str2 == "h") {
return str1 * 60 * 60 * 1000;
} else if(str2 == "d") {
return str1 * 24 * 60 * 60 * 1000;
}
}
//调用方法示例:
设置cookie: Cookie.setCookie("name","sxy",'s6');
获取cookie: Cookie.getCookie("name");
删除cookie: Cookie.deleteCookie("name");
//注:在测试的时候,我们在控制台上看cookie如果cookie在过期日期内还存在,记住在cookie上右键点击refresh刷新就可以看到数据消失;
## 本地存贮的用法 ##
sessionStrage: session即会话的意思,在这里的session是指用户浏览某个网站时,当页面关闭的时候,这个会话就会结束,数据就会消失;
localStorage: 将数据保存在客户端硬件设备上,除非自己手动移除数据,否则数据会一直存在页面中。
localStorage.getItem(key):获取指定key本地存储的值
localStorage.setItem(key,value):将value存储到key字段
localStorage.removeItem(key):删除指定key本地存储的值
在使用本地存贮的时候会有兼容的问题:需要考虑浏览器是否支持兼容
if (window.localStorage) {
// 针对 localStorage/sessionStorage 的代码
} else {
// 抱歉!不支持 Web Storage ..
}