html中 cookie和session

来源:互联网 发布:淘宝店铺等级快速升级 编辑:程序博客网 时间:2024/06/11 19:51

基础知识,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; //可以直接得到cookiesalert(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); //将时间设置成过去的时间的时候,就会直接删除cookiedate.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(); } 
原创粉丝点击