cookie
客户端的会话跟踪技术
作用:将网页中的数据保存到浏览器中
注意点:(1)默认不会保存任何数据
(2)cookie不能一次性设置多条数据,只能一条一条设置
(3)cookie有大小(4kb左右)和个数(20到50个)的限制
(4)cookie作用范围:只能在同一浏览器的同一个路径下访问,如果在同一浏览器中,默认情况下下一级路径也可以访问
如果想要上一级也能访问,可以添加path:/(保存在根路径)属性
(5)域名不同时:如果要在edu.it666.com中访问保存在www.it666.com中的一个cookie,需要再添加一句代码
domain=it666.com
完整保存cookie的形式:document.cookie = "age=18;path=/;domain = 127.0.0.1;”;
cookie生命周期:默认情况下时一次会话(浏览器被关闭)
使用
window.onload = function(){
var date = new Date();
date.setDate(date.getDate()+1);//设置过期时间为一天
//如果通过expires=设置了过期时间,并且过期时间没有过期,那么下次打开浏览器此cookie还存在
//如果已经过期了那么会立即删除保存的数据
document.cookie = "age=18;path:/;expires = "+date.toGMTString()+';';
alert(document.cookie);
}
session
服务端的会话跟踪技术
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.处理默认保存的edomain
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);
document.cookie = key +"=" +value+";expires=" + date.toGMTString()+"path ="+path+";domain="+domain+";";
}
}
cookie获取方法封装
function getCookie(key){
var res = document.cookie.split(';');
for(var i = 0 ;i < res.length; i++){
var temp = res.split('=');
if(temp[0].trim() === key){
return temp[1];
}
}
}
cookie删除方法封装
function delCookie(path){
addCookie(key,getCookie(key),-1,path);//指定过期时间为昨天,会立即删除
}