Javascript操作cookie

cookie的概念

  Javascript是运行在客户端的脚本,Session运行在服务端,所以Javascript不能操作Session,cookie运行在客户端,具有和Session类似的效果,可以被Javascript操作。 cookie是指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。cookie是一段以键值对形式(key=value)保存在计算机硬盘上的字符串信息,各个cookie之间用分号加空格隔开。cookie存储容量大概4kb,不同浏览器存在微小差异。cookie存在有效期,默认有效期是从cookie生成到浏览器关闭,有效期也可以自定义。Javascript中cookie名称区分大小写。

cookie的应用

  cookie最典型的应用是判断用户是否登陆网站。还有一个重要应用场合是"购物车"(用户可能会在一段时间内在同一家网站的不同页面中选择不同商品,这些信息都会写入Cookies,以便在最后付款时提取信息)。

设置cookie:

document.cookie="name=123" //将cookie写入客户端
document.cookie="name=123;word=123;" //只能设置name=123(一条语句只能同时设置一个cookie)

获取cookie:

function getCookie(name)
{
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg))
    return unescape(arr[2]);
    else
    return null;
}

删除cookie

//删除cookie需要将失效日期设置为过去的时间点
function delCookie(name) {
var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval=getCookie(name); if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString(); //将时间转换成GMT格式的字符串 }

给cookie设置失效日期

  expires表示cookie的失效日期。如果省略expires或将其设置为0或负值,浏览器关闭时cookie失效。cookie失效前,即使重启电脑也不会丢失。expires不可读,在Javascript中使用document.cookie不会显示出expires。expires值应该使用GMT格式的时间字符串(GMT即格林尼治标准时间,现在也称为UTC即全球标准时间)。

//在Javascript中使用expires时应该和cookie同时写入,如:
document.cookie = "num=123;expires=" + exp;
//而如下写法是不正确的:
document.cookie = "num=123";
document.cookie = "expires=" + exp;
//这样写会形成两个cookie,第二个cookie的名称是expires,两个cookie均没有指定失效日期。
function setCookie(name, value)
{
  var date = new Date(); //获取当前时间
  var exp = 10; //expiresDays缩写exp(有效时间)
  date.setTime(date.getTime() + exp * 24 * 3600 * 1000); //格式化为cookie识别的时间
  document.cookie=escape(name) + "=" + escape(value) + ";expires="+date.toGMTString(); //将name设置为10天后过期,超过这个时间name这条cookie会消失
}
1、toGMTString()方法可根据格林尼治时间(GMT)将Date对象转换为GMT格式的字符串
2、escape()函数可对字符串进行编码,这样就可以在所有计算机上读取该字符串。该方法不会对ASCII字母和数字进行编码,也不会对*@-_+./。这些ASCII标点符号进行编码,其他所有字符
都会被转义序列替换。
3、unescape()函数可以对escape()编码的字符串进行解码。

 

  

 

posted @ 2019-03-07 10:37  雷雨天的雷胖子  阅读(1791)  评论(0编辑  收藏  举报