看之前先推荐一篇讲解cookie的博客文章:JavaScript 操作 Cookie,由浅到深,讲的非常透彻到位,篇幅虽然有点长,但是仔细看肯定就能懂cookie了。以下是我自己肤浅的理解,就当是读后感或是回忆录吧!
1、什么是cookie
cookie是
浏览器和服务器之间有约定:通过使用cookie技术来维护应用的状态。
1、创建:Cookie是可以被Web服务器设置的字符串,并且可以保存在浏览器中。
2、发送:当浏览器访问了页面1时,web服务器设置了一个cookie,并将这个cookie和页面1一起返回给浏览器,
3、保存:浏览器接到cookie之后,就会保存起来,
4、发送:在它访问页面2的时候会把这个cookie也带上,Web服务器接到请求时也能读出cookie的值,根据cookie值的内容就可以判断和恢复一些用户的信息状态。
2、为什么用cookie
3、如何操作cookie
1)取得cookie
主要是通过传入一个参数属性(name),利用正则表达式来获得对应的属性值(value);
function getCookie(name) {
// (^| )name=([^;]*)(;|$),match[0]为与整个正则表达式匹配的字符串,match[i]为正则表达式捕获数组相匹配的数组;
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) {
return unescape(arr[2]);
}
return null;
}
2)设置cookie
通过传入属性名及其属性值,设置cookie,默认为30天,可以自己修改
复制代码
// 有个问题,如果传入的name属性,在修改之前就存在了,是不是需要修改~?
function setCookie(name,value) {
var Days = 10; //此 cookie 将被保存 30 天
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days*24*60*60*1000);
if((typeof value == "string")&&(value.length > 0)){
document.cookie = name + "="+ escape(value) + ";expires=" + exp.toGMTString();
}else{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null)
document.cookie=name +"="+cval+";expires="+exp.toGMTString();
}
}
4、总结感触
对于接触到每个“前端术语”,就上面的cookie来说吧,要想掌握cookie,就必须懂它的来源,是什么,它存在的意义是就是为了保存用户的信息,然后知道是怎么保存的,保存的形式知道了,就可以运用我们学到的js基础知识语法来操作它改变它,使之变为我们需要的样子,懂了需求之后,归根到底还是考察js的基础操作,字符串的操作,正则表达式的应用等等。
下一篇:没有了