基础知识,session是保存在服务器中,cookie是保存在本地。
- cookie不是很安全。
- cookie单个限制是3K,一个站点不能超过20个
- session 一段时间会保存在服务器中,但是访问量大的时候会对服务器造成压力
- 将登陆信息等重要信息存放为SESSION
,其他信息如果需要保留,可以放在COOKIE中
cook使用:
document.cookie = "userId=828"; //设置
document.addCookie("userId=454");//可以用这个方法添加, 如果已经有userid,将会刷新
document.cookie = "userud=828; username=lias"//用分号+空格可以设置多个值
document.cookie="str="+escape("I love ajax"); //可以使用中文或者空格储存
var strCookie=document.cookie;
//可以直接得到cookies
alert(strCookie);
cookies会一次性全部读取出来,所以要得到单个的值的话
//获取cookie字符串
var strCookie=document.cookie;
//将多cookie切割为多个名/值对
var arrCookie=strCookie.split("; ");
var userId;
//遍历cookie数组,处理每个cookie对
for(var i=0;i<arrCookie.le++){
var arr=arrCookie[i].split("=");
//找到名称为userId的cookie,并返回它的值
if("userId"==arr[0]){
userId=arr[1];
break;
}
}
设置cookie的天数,到时间后删除
//获取当前时间
var date=new Date();
var expiresDays=10;
//将date设置为10天以后的时间
date.setTime(date.getTime()+expiresDays*24*3600*1000);
//将时间设置成过去的时间的时候,就会直接删除cookie
date.setTime(date.getTime()-10000);
//将userId和userName两个cookie设置过期时间
document.cookie="userId=828; userName=hulk; expires="+date.toGMTString();
进行cookie封装
addCookie(name,value,expiresHours)
cookie名字和值,还有封装时间,为o的时候不设置时间
function addCookie(name,value,expiresHours){
var cookieString=name+"="+escape(value);
//判断是否设置过期时间
if(expiresHours>0){
var date=new Date();
date.setTime(date.getTime+expiresHours*3600*1000);
cookieString=cookieString+"; expires="+date.toGMTString();
}
document.cookie=cogieString;
}
获取指定名称的cookie值:getCookie(name)
function getCookie(name){
var strCookie=document.cookie;
var arrCookie=strCookie.split("; ");
for(var i=0;i<arrCookie.length;i++){
var arr=arrCookie[i].split("=");
if(arr[0]==name)return arr[1];
}
return "";
}
删除指定名称的cookie:deleteCookie(name)
function deleteCookie(name){
var date=new Date();
date.setTime(date.getTime()-10000);
document.cookie=name+"=v; expires="+date.toGMTString();
}