**前言:
在javascript视频有一章主讲了cookie的使用和作用,其实对于cookie的作用以前也有过接触,比如一些浏览记录等临时文件等都和它有关系,这次将系统的进行学习它的概念和基本操作。
内容:
一:Cookie的概念
Cookie是一小段文本,存储着特定网站或网站相关的信息,以便在不同页面之间,浏览器与服务器之间相互传递数据。
其实用一句话的意思就是在浏览器端保存一些数据的一种方式。
二.Cookie的限制
浏览器限制了Cookie的大小,容量是4kb;
浏览器限制了Cookie的数量,文件数量是20个.
三.Cookie的机制**
<Cookiename+Cookievalue;expire=expirationdategmt;path=urlpath;domain=sitedomain;secure
其中cookiename是cookie的名字和值
expire是有效期
path关联的路径
domain是域名,也可以表示的是路径名。
secure是安全保密
四:Cookie的基本操作
1.Cookie的存取
//创建cookie的通用函数。
function setCookie(name, value, expires, path, domain, secure) {
var cookiename = encodeURIComponent(name) + '=' + encodeURIComponent(value); //设置cookie的名字和值
if (expires instanceof Date) {
cookiename += ';expires=' + expires; //设置cookie的保存时间
}
if (path) {
cookiename += 'path=' + path; //设置cookie的保存路径
}
if (domain) {
cookiename += 'domain=' + domain; //设置cookie的域名
}
if (secure) {
cookiename += ';secure='; //设置访问的权限。
}
document.cookie = cookiename;
}
------------------------------------------------------------------------------------------------
//设置过期的时间
function setCookieDate(day) {
var date = null;
if (typeof day=='number'&& day>0) {
date = new Date();
date.setDate(date.getDate() + day);
} else {
throw new Error('您传递的天数不合法!');
}
return date;
}
------------------------------------------------------------------------------------------------
//创建了一个名为user的cookie,保存时间为7天
setCookie('user', 'changyinling', setCookieDate(7));
//创建了一个名为url的cookie,保存时间为7天
setCookie('url','yc60.com',setCookieDate(7));
// 创建了一个名为email的cookie,保存时间为30天。
setCookie('email', 'yc60@163.com', setCookieDate(30));
2.Cookie的删除
删除的方式有三种:
一种通过在浏览器上手动清空cookie文件;
二是通过代码设置它的保存时间为0;
三是将时间调到过期的时间以后。
时间调到过期的时间以后。
//删除cookie的通用函数
function deleteCookie(name, value) {
var cookiename = encodeURIComponent(name) + '=' + encodeURIComponent(value); //获取cookie的名字和值
var exp = new Date();
//关键是这一步,让保存的时间早于现在的时间
exp.setTime(exp.getDate() - 10000);
document.cookie = name + '=' + escape(value) + ';expires=' + exp.toGMTString();
var checkcookie = document.cookie;
if (checkcookie=='') {
alert('当前网页已经没有cookie!');
}
}
deleteCookie('user', 'changyinling')
设置它的保存时间为0
function deleteCookie(name, value) {
var cookiename = encodeURIComponent(name) + '=' + encodeURIComponent(value); //获取cookie的名字和值
//使保存的时间为0,也就是不保存
var exp = new Date(0);
document.cookie = name + '=' + escape(value) + ';expires=' + exp.toGMTString();
var checkcookie = document.cookie;
if (checkcookie=='') {
alert('当前网页已经没有cookie!');
}
}
deleteCookie('user', 'changyinling')
3.获取对应的cookie
//获取相对应的cookie的value值的通用的代码
function getcookie(name) {
var cookiename=encodeuricomponent(name)+'=';
var cookiestart = document.cookie.indexof(cookiename);
if (cookiestart > -1) { //表示当前的cookiename是存在的。
//获取从开始索引处到分号处的索引。
var cookieend = document.cookie.indexof(';', cookiestart);
//表示的是最后一个cookie,因为最后没有分号,所以cookieend的索引为应该是整个cookie的长度。
if (cookieend==-1) {
cookieend = document.cookie.length;
}
//获取对应cookiename的value值
var cookievalue = document.cookie.substring(cookiestart + cookiename.length, cookieend);
}
return cookievalue;
}
总结
基本上对于cookie的基本操作已经讲完了,其实我们在创建了一个cookie的时候需要结合浏览器查看是否已经创建成功了,cookie其实就是在浏览器上的缓冲文件的一类,还有两种方式用于保存临时文件,接下的博客将细细讲解!