1993年,网景公司雇员Lou Montulli为了让用户在访问某网站时,进一步提高访问速度,同时也为了进一步实现个人化网络,发明了今天广泛使用的Cookie。Cookie指某些网站为了辨别用户身份、进行Session跟踪而储存在用户本地终端上的数据。Cookie的作用就是用于解决“如何记录客户端的用户信息”。
1993年,网景公司雇员Lou Montulli为了让用户在访问某网站时,进一步提高访问速度,同时也为了进一步实现个人化网络,发明了今天广泛使用的Cookie。Cookie指某些网站为了辨别用户身份、进行Session跟踪而储存在用户本地终端上的数据。Cookie的作用就是用于解决“如何记录客户端的用户信息”。
那么我们如何进行Cookie的操作呢?
JavaScript中为我们提供了document.cookie属性来创建、读取、及删除Cookies。
工作中,我们为了操作的方便和工作效率的提高会将创建、读取、及删除Cookies进行函数封装。
下面笔者给出自己的Cookie封装函数:
- // 设置cookie | key代表键,val代表值,t代表过期时间(以天为单位)
- function setCookie(key, val, t) {
- var oDate = new Date();
- oDate.setDate(oDate.getDate() + t);
- // 对cookie进行编码处理,以防cookie设置中有特殊字符无法识别
- document.cookie = key + '=' + encodeURI(val) + '; expires=' + oDate.toGMTString();
- }
- // 删除cookie
- function removeCookie(key) {
- setCookie(key, '', -1);
- }
- // 获取cookie
- function getCookie(key) {
- var arr1 = document.cookie.split('; ');
- for (var i = 0; i < arr1.length; i++) {
- var arr2 = arr1[i].split('=');
- if (arr2[0] == key) {
- // 对cookie进行解码处理
- return decodeURI(arr2[1]);
- }
- }
- }
注:
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功能,为获得一致的表现,可以在服务器环境下测试。
2016年12月08日 下午5:21 沙发
不错,有所收获