cookie 会话跟踪术
cookie是从开始到结束的整个过程,全程跟踪客户状态
cookie的作用就是用于解决 “ 然后记录客户端的用户信息 ”
cookie :
可以设置过期时间
最大可以存储 4kb 每个域名下最多可以存储50条数据(不同浏览器有偏差)
只能存储字符串 一般存储比较重要的东西 登录、购物车、点赞等
语法
必选项
name = value
设置cookie document.cookie=' username = xxx '
encodeURIComponent() 将中文编译成对应的字符
decodeURIComponent() 将对于的字符转成中文
可选项
cookie的过期时间 expires
必须填写日期对象
path 限制访问路径
如果不设置就是当前的HTML文件
加载路径必须和设置的路径一致,不一致cookie访问失败
domian 限制访问域名/ip
如果不去设置默认当前文件的服务器
如果加载文件域名和设置的不一样 cookie设置失败
封装成一个函数
function setCookie( name,value ,{expires,path,domain,secues}){
var cookieStr = encodeURIComponent(name)+"="+encodeURIComponent(value);
if(expires){
cookieStr += ";expires="+data(expires);
}
if(path){
cookieStr+=";path="+path;
}
if(domain){
cookieStr+=";domain="+domain
}
if(secues){
cookieStr+=";secuse"
}
document.cookie=cookieStr
// 封装n天后的时间、
function data(n){
var a = new Date();
var day = a.getDate();
a.setDate(n + day);
return a
}
}
// 测试
setCookie("超级英雄","钢铁侠",{expires:7})
setCookie("cd","xxx",{expires:7})
setCookie("程序员","波波啵",{expires:7})
// alert(decodeURIComponent(document.cookie))
alert(getCookie("超级英雄"))
alert(getCookie("cd"))
alert(getCookie("程序员"))
// 通过建返回值
function getCookie(name){
var cookieStr = decodeURIComponent(document.cookie)
var sttr = cookieStr.indexOf(name+"=");
if(sttr==-1){
return null
}else {
// 查询从sttr第一个位置到第一个分号
var end = cookieStr.indexOf(';',sttr)
if(end==-1){
end = cookieStr.length
}
// 进行字符串提前
var str = cookieStr.substring(sttr,end);
var arr = str.split("=")
return arr[1]
}
}