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实现的上传图片及图片大小验证、图片预览效果代码
Apr 12 Javascript
分享27个jQuery 表单插件集合推荐
Apr 25 Javascript
js中判断文本框是否为空的两种方法
Jul 31 Javascript
让html页面不缓存js的实现方法
Oct 31 Javascript
JS多文件上传的实例代码
Jan 11 Javascript
浅谈JS中的反柯里化( uncurrying)
Aug 17 Javascript
vue路由跳转时判断用户是否登录功能的实现
Oct 26 Javascript
vue给组件传递不同的值方法
Sep 29 Javascript
JS html事件冒泡和事件捕获操作示例
May 01 Javascript
详解babel升级到7.X采坑总结
May 12 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
Jun 24 Javascript
JavaScript回调函数callback用法解析
Jan 14 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
E路文章系统PHP
2006/12/11 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
2013/06/24 PHP
PHP获取数组最大值下标的方法
2015/05/12 PHP
为javascript添加String.Format方法
2020/08/11 Javascript
JavaScript 学习技巧
2010/02/17 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
Javascript改变CSS样式(局部和全局)
2013/12/18 Javascript
js导出txt示例代码
2014/01/14 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
Mvc提交表单的四种方法全程详解
2016/08/10 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
vue中关闭eslint的方法分析
2018/08/04 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
Vue中使用canvas方法总结
2019/02/12 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
jquery插件实现轮播图效果
2020/10/19 jQuery
[02:25]专访DOTA2负责人Erik 国际邀请赛暂不会离开西雅
2014/07/21 DOTA
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
python小项目之五子棋游戏
2019/12/26 Python
浅谈TensorFlow之稀疏张量表示
2020/06/30 Python
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
Java的基础面试题附答案
2016/01/10 面试题
考博专家推荐信模板
2013/12/02 职场文书
财务部经理岗位职责
2014/02/03 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书