js中的cookie的读写操作示例详解


Posted in Javascript onApril 17, 2014

cookie是一小段信息,以键/值对的信息保存在计算机硬盘上的字符串, cookie存储容量大概在4kb,不同的浏览器厂家对cookie大小的限制有微微的差异;cookie主要的本质是“识别”,通过识别来做一些事情;cookie 也是无法从你的硬盘取得任何其它数据,传送电脑病毒或者获取你的电子邮件地址。cookie是有有效期的,cookie的默认有效期是从cookie生成至浏览器关闭,也可以通过设置cookie的有效期来指定其失效日期;用户也可以禁止cookie也可以手动删除cookie。

cookie是字符串而且还是一个特定格式的文本字符串

格式:cookieName=cookieValue;expires=expiresDate;path=URLpath;domain=siteDomain//cookie名称,失效日期,储存URL,储存域值;

cookie的创建方式

设置cookie我们一般都封装成一个函数:

function addCookie(sName,sValue,day) { 
var expireDate = new Date(); 
expireDate.setDate(expireDate.getDate()+day);; 
//设置失效时间 
document.cookie = escape(sName) + '=' + escape(sValue) +';expires=' + expireDate.toGMTString();6 //escape()汉字转成unicode编码,toGMTString() 把日期对象转成字符串 
}

读取cookie

添加了cookie之后,我们如何来获取它呢,很简单:

function getCookies() { 
var showAllCookie = ''; 
if(!document.cookie == ''){ 
var arrCookie = document.cookie.split('; '); 
//用spilt('; ')切割所有cookie保存在数组arrCookie中 
var arrLength = arrCookie.length; 
for(var i=0; i<arrLength; i++) { 
showAllCookie += 'c_name:' + unescape(arrCookie[i].split('=')[0]) + 'c_value:' + unescape(arrCookie[i].split('=')[1]) + '<br>' 9 } 
return showAllCookie; 
} 
}

cookie有有效期可自动删除,也可以通过设置其失效日期来立即删除

一样很简单,继续:

function removeCookie() { 
if(document.cookie != '' && confirm('你想清理所有cookie吗?')) { 
var arrCookie = document.cookie.split('; '); 
var arrLength = arrCookie.length; 
var expireDate = new Date(); 
expireDate.setDate(expireDate.getDate()-1); 
for(var i=0; i<arrLength; i++) { 
var str = arrCookie[i].split('=')[0]; 
document.cookie = str+ '=' + ';expires=' + expireDate.toGMTString(); 
} 
} 
}

我们已经知道如何创建、获取、删除cookie了,现在也该运用cookie了

下面我们用cookie做一个简单的计时器:

var cookieCount = {}; 
cookieCount.count = function () { 
var count = parseInt(this.getCount('myCount')); 
count++; 
document.cookie = 'myCount=' + count + ''; 
alert('第'+count+'访问'); 
} 
cookieCount.setCount= function () { 
//首先得创建一个名为myCount的cookie 
var expireDate = new Date(); 
expireDate.setDate(expireDate.getDate()+1); 
document.cookie = 'myCount=' + '0' +';expires=' + expireDate.toGMTString(); 
} 
cookieCount.getCount = function (countName) { 
//获取名为计数cookie,为其加1 
var arrCookie = document.cookie.split('; '); 
var arrLength = arrCookie.length; 
var ini = true; 
for(var i=0; i<arrLength; i++) { 
if(countName == arrCookie[i].split('=')[0]){ 
return parseInt(arrCookie[i].split('=')[1]); 
break; 
}else{ 
ini = false; 
} 
} 
if(ini == false)this.setCount(); 
return 0; 
} 
cookieCount.count();

cookie的路径

本文开头的时候提到cookie的路径设置 cookie的路径:path=URL;

如果在域名的子目录创建的cookie,域名及其他同级目录或上级目录是访问不到这个cookie的,而通过设置路径的好处就是可以上域名以及域名的子类目录都可以访问到,如下:

document.cookie='cookieName=cookieValue;expires=expireDate;path=/'。

cookie域

设置域:domain=siteDomain

这个主要用在同域的情况下共享一个cookie,例如 "www.taobao.com" 与 "ued.taobao.com" 两者是共享一个域名"taobao.com",我们如果想让 "www.taobao.com" 下的cookie被 "ued.taobao.com" 访问,那么就需要把path属性设置为 "/",并且设置 cookie 的domain-->document.cookie='cookieName=cookieValue;expires=expireDate;path=/;domain=taobao.com'。

随着web的不断发展项目中的需要,HTML5提供了两个属性window.sessionStorage和window.localStorage,并携带了setItem,getItem,removeItem,clear等方法,使得本地存储数据的方法操作更为简单便利

Javascript 相关文章推荐
一个基于jQuery的树型插件(OrangeTree)使用介绍
May 03 Javascript
JS获取各种浏览器窗口大小的方法
Jan 14 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
Jun 10 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
Jun 15 Javascript
纯js模拟div层弹性运动的方法
Jul 27 Javascript
详解jQuery中的元素的属性和相关操作
Aug 14 Javascript
js实现异步循环实现代码
Feb 16 Javascript
javascript创建cookie、读取cookie
Mar 31 Javascript
JS加载器如何动态加载外部js文件
May 26 Javascript
jquery的 filter()方法使用教程
Mar 22 jQuery
js实现打字小游戏
Dec 17 Javascript
基于JavaScript实现大文件上传后端代码实例
Aug 18 Javascript
巧用replace将文字表情替换为图片
Apr 17 #Javascript
JavaScript事件委托的技术原理探讨示例
Apr 17 #Javascript
JS实现div居中示例
Apr 17 #Javascript
淘宝网提供的国内NPM镜像简介和使用方法
Apr 17 #Javascript
js调用后台、后台调用前台等方法总结
Apr 17 #Javascript
JS下载文件|无刷新下载文件示例代码
Apr 17 #Javascript
你可能不知道的JavaScript的new Function()方法
Apr 17 #Javascript
You might like
php 前一天或后一天的日期
2008/06/28 PHP
Apache 配置详解(最好的APACHE配置教程)
2010/07/04 PHP
PHP之数组学习
2011/05/29 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
Thinkphp5.0自动生成模块及目录的方法详解
2017/04/17 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
2017/08/11 PHP
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
2016/02/12 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
2016/11/01 Javascript
JS简单实现表格排序功能示例
2016/12/20 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
浅谈Vue下使用百度地图的简易方法
2018/03/23 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
python线程池threadpool使用篇
2018/04/27 Python
Python Selenium参数配置方法解析
2020/01/19 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
python打印文件的前几行或最后几行教程
2020/02/13 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
智利最大的网上商店:Linio智利
2016/11/24 全球购物
美国最大的船只买卖在线市场:Boat Trader
2018/08/04 全球购物
白血病捐款倡议书
2014/05/14 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
项目经理岗位职责
2015/01/31 职场文书
教师继续教育反思周记
2015/06/25 职场文书
小学大队委竞选口号
2015/12/25 职场文书