会话跟踪是Web程序中常用的一种技术,用来跟踪用户的整个会话,常用的会话跟踪技术有Cookie与Session,Session一般用在服务器端,而Cookie一般使用在客户端,可以在客户端保存临时数据, 那这里我们要简单说说Cookie会话跟踪技术.
Cookie的应用场景
1 自动登录
2电商购物车功能
3 记录用户登录网址的次数
4 商品浏览记录
Cookie的使用方法
在JavaScript语言中,我们使用document.cookie: 获取/设置Cookie
格式为: name=value;[expires=过期时间];[path=访问路径];[domain=域名];[secure]
如: document.cookie = "username=zhangsan;expires=-1;domain=baidu.com;path=/";
Cookie的注意点
①cookie默认不会保存任何数据
②如果你要保存多条cookie只能分开设置,一次只能设置一条,不能在一条cookie里同时设置。
③cookie有个数和大小的限制
转自https://blog.csdn.net/proglovercn/article/details/45514705④cookie只能在同一个浏览器同一个路径下才能被访问到,其下级路径也能访问到,但是上一级不能访问到。
如果想让所有路径都能访问,要在cookie里面添加"path=/";
⑤关于domain,如果我们在www.ncu.com保存了一个cookie,那么我们在edu.ncu.com是访问不到的,
如果想要访问,需要添加”domain:ncu.com"
Cookie的生命周期
①默认情况下是生命周期是一次会话(浏览器被关闭)
②可用expires设设置生命周期。
eg:
var date=new Date();
date.setDate(date.getDate()+1);
document.cookie="name=NCU;expires="+date.toGMTString();
这样我们就设置好了一条cookie,你再次打开浏览器它还存在,它过了一天后才消失
可以任意修改,如果将加一变为减一,cookie不会显示,可以用这种方法设置cookie的生命周期使其被删除。
对Cookie进行封装
无非就是CRUD
①添加cookie的封装
function addCookie(key,value,day,path,domain) {
//1.处理默认保存路径
var index=window.location.pathname.lastIndexOf("/");
var currentpath=window.location.pathname.slice(0,index);
path=path||currentpath; //如果没有传入路径就以默认路径为参数
//2.处理默认保存的domain
domain=domain||document.domain;
//3处理默认时间
if(!day){
document.cookie=key+"="+value+";path="+path+";domain="+domain;//如果没有传入过期时间
}
else{
var date=new Date();
date.setDate(date.getDate()+day);
var tempday=date.toUTCString();
document.cookie=key+"="+value+";expires="+tempday+";path="+path+";domain="+domain; //传入了过期时间
}
}
addCookie②查找某条cookie
function getCookie(key) {
var res=document.cookie.split(";");
for (var i=0,len=res.length;i
{
var temp=res[i].split("=");
if(temp[0].trim()==key) //去除切割后产生的空格,便于查找
{
return temp[1];
}
}
}
getCookie③删除某条cookie
function deleteCookie(key,path) {
//如果不传入path,只能删除默认路径下的cookie,而不能删除修改路径后的cookie,所有需要增加一个path参数
addCookie(key,getCookie(key),-1,path);
}
deleteCookie这里再说一下localStorage;
①添加localStorage
window.localStorage.setItem("name","kai");
如果要用这个方法存储对象,必须用JSON.stringify方法;
例如var obj={name:"kai"}
var strObj=JSON.stringify(obj);
window.localStorage.setItem("name",strObj);
第个二参数为值,必须为字符串类型,如果传入对象而不转化成字符串,会丢失信息甚至无效。
②查看localStorage
window.localStorage.getItem("name");
③删除localStorage
window.localStorage.removeItem("name");
网友评论