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 相关文章推荐
用JavaScript显示随机图像或引用
Apr 21 Javascript
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
Apr 15 Javascript
30个最好的jQuery 灯箱插件分享
Apr 25 Javascript
js中关于String对象的replace使用详解
May 24 Javascript
JavaScript极简入门教程(一):基础篇
Oct 25 Javascript
JavaScript调试的多个必备小Tips
Jan 15 Javascript
单击按钮发送验证码,出现倒计时的简单实例
Mar 17 Javascript
解决vue移动端适配问题
Dec 12 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
Apr 15 Javascript
jQuery zTree插件快速实现目录树
Aug 16 jQuery
对layui初始化列表的CheckBox属性详解
Sep 13 Javascript
微信小游戏中three.js离屏画布的示例代码
Oct 12 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
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
thinkPHP中钩子的两种配置调用方法详解
2016/11/11 PHP
一个JavaScript继承的实现
2006/10/24 Javascript
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
JavaScript返回网页中超链接数量的方法
2015/04/03 Javascript
jQuery实现表格行上移下移和置顶的方法
2015/05/22 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
2015/12/24 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
基于模板引擎Jade的应用(详解)
2017/12/12 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
vuex实现的简单购物车功能示例
2019/02/13 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
python实现DNS正向查询、反向查询的例子
2014/04/25 Python
Python删除n行后的其他行方法
2019/01/28 Python
python创造虚拟环境方法总结
2019/03/04 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
国际贸易专业求职信
2014/06/04 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
党支部工作总结2015
2015/04/01 职场文书
Flutter Navigator 实现路由传递参数
2022/04/22 Java/Android