Cookie也称HTTP Cookie,是随着Web的发展,开发者需要能够本地化存储的脚本能力产生。最初是客户端与服务器端进行会话使用。比如12306订票,抢上票之后没有及时付款45分钟之内有效。
初步学习Cookie,我们先来了解它的组成(注意失效时间)、创建、获取、删除。
1.Cookie的组成:
由名/值对形式的文本组成:name=value。完整的格式是:
set-Cookie:name = value;[expirse = date];[path = dir];[domain = domainname];[secure]
其中,name=value是必选的其他的可选。关于这Cookie的这五个属性的含义,简单地说:name=值、expirse=失效时间、path=访问路径、domain=域名访问、secure=安全的https限制通信,详细可以参考:http://blog.youkuaiyun.com/wangjingna/article/details/46687469。
注意: expirse = date 失效时间,如果没有声明,则为浏览器关闭后失效。如果声明时间则是时间到期后失效。
var date =new Date();
date.setDate(date.getDate()+7); //设置失效时间
document.cookie="user="+encodeURIComponent('黎卓玲')+";expries"+date;
2.创建:
function setCookie(name,expires,path,domain,secure){
var cookieText=encodeURIComponent(name)+'='+encodeURIComponent(value);
if(expires instanceofDate){
cookieText+=';expires='=expires;
}
if (path){
cookieText
cookieText+=';expires='=expires;
}
if (domain){
cookieText
cookieText+=';domain='=domain;
}
if (secure){
cookieText+=';secure';
}
documain.cookie=cookieText;
}
3.获取:
function getCookie(name){
var cookieName=encodeURIComponent(name)+'=';
var cookieStart=document.cookie.indexOf(cookieName);
var cookieValue=null;
if(cookieStart>-1){
cookieEnd=document.cookie.length;
}
cookieValue=decodeURIComponent(document.cookie.substring(cookieStart+cookieName.length,cookieEnd));
return cookieValue;
}
4.删除:
//删除Cookie
function unsetCookie(name){
document.cookie=name+"=;expires="+new Date(0);
}
//失效天数,直接传一个天数即可
function setCookieDate(day){
if (type of day=='number' && day>0){
var day =new Date();
date.setDate(date.getDate+day);
}else{
throw new Error('传递的day必须是一个天数,必须必0大');
}
return date;
}
学习一个知识点,需要了解它的优缺点才能更好的运用。Cookie的好处在于持久化、缓存信息,不至于让一次操作失误导致所有数据丢失等,人性化;也有它的局限性,可是被禁用和删除有浏览器的兼容问题。
初步的学习还有许多要深入研究的,不足之希望多多指导。