Cookie的创建、删除和读取

摘要

1993年,网景公司雇员Lou Montulli为了让用户在访问某网站时,进一步提高访问速度,同时也为了进一步实现个人化网络,发明了今天广泛使用的Cookie。Cookie指某些网站为了辨别用户身份、进行Session跟踪而储存在用户本地终端上的数据。Cookie的作用就是用于解决“如何记录客户端的用户信息”。

1993年,网景公司雇员Lou Montulli为了让用户在访问某网站时,进一步提高访问速度,同时也为了进一步实现个人化网络,发明了今天广泛使用的Cookie。Cookie指某些网站为了辨别用户身份、进行Session跟踪而储存在用户本地终端上的数据。Cookie的作用就是用于解决“如何记录客户端的用户信息”。

那么我们如何进行Cookie的操作呢?

JavaScript中为我们提供了document.cookie属性来创建、读取、及删除Cookies。

工作中,我们为了操作的方便和工作效率的提高会将创建、读取、及删除Cookies进行函数封装。

下面笔者给出自己的Cookie封装函数:

  1. // 设置cookie | key代表键,val代表值,t代表过期时间(以天为单位)
  2. function setCookie(key, val, t) {
  3.     var oDate = new Date();
  4.     oDate.setDate(oDate.getDate() + t);
  5.     // 对cookie进行编码处理,以防cookie设置中有特殊字符无法识别
  6.     document.cookie = key + '=' + encodeURI(val) + '; expires=' + oDate.toGMTString();
  7. }
  8. // 删除cookie
  9. function removeCookie(key) {
  10.     setCookie(key, '', -1);
  11. }
  12. // 获取cookie
  13. function getCookie(key) {
  14.     var arr1 = document.cookie.split('; ');
  15.     for (var i = 0; i < arr1.length; i++) {
  16.         var arr2 = arr1[i].split('=');
  17.         if (arr2[0] == key) {
  18.             // 对cookie进行解码处理
  19.             return decodeURI(arr2[1]);
  20.         }
  21.     }
  22. }

注:

1、Cookie的存储是以域名的形式进行区分的;

2、Cookie存放内容的大小是有限制的,不同浏览器的大小不一样;

3、不同浏览器存放Cookie的位置不一样,所以不同浏览器的Cookie不能通用;

4、Cookie默认的存储方式是临时的,当浏览器结束进程的时候,Cookie会自动销毁;

5、如果想长时间保存一条Cookie信息,我们需要在设置该条Cookie的同时给其设置过期时间;

6、通过document.cookie来获取当前域名下的Cookie时,获取的是当前域名下所有Cookie组成的字符串;

7、如果Cookie设置过程中含有特殊字符,我们需要进行编码处理(encodeURI(val)),读取的时候也要进行解码(decodeURI(val))处理;

特别说明:由于浏览器的安全机制措施,某些浏览器不支持本地文件Cookie功能,为获得一致的表现,可以在服务器环境下测试。

shaw

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

  1. 胡杨 0

    不错,有所收获