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 相关文章推荐
OfflineSave离线保存代码再次发布使用说明
May 23 Javascript
广告切换效果(缓动切换)
May 27 Javascript
IE6图片加载的一个BUG解决方法
Jul 13 Javascript
javascript动态加载实现方法一
Aug 22 Javascript
javascript基于DOM实现权限选择实例分析
May 14 Javascript
jquery移动端TAB触屏切换实现效果
Dec 22 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
Mar 05 Javascript
Angularjs实现mvvm式的选项卡示例代码
Sep 08 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
Aug 04 Javascript
Vue集成Iframe页面的方法示例
Dec 12 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
Aug 22 Javascript
Element Collapse 折叠面板的使用方法
Jul 26 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 自定义错误处理函数的使用详解
2013/05/10 PHP
php设计模式之单例模式代码
2016/06/11 PHP
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
js实现动态改变字体大小代码
2014/01/02 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
JS正则表达式修饰符中multiline(/m)用法分析
2016/12/27 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
2017/09/04 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
微信小程序实现类似微信点击语音播放效果
2020/03/30 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
[01:32]2014DOTA2西雅图邀请赛 CIS我们有信心进入正赛
2014/07/08 DOTA
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
pycharm 配置svn的图文教程(手把手教你)
2021/01/15 Python
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
财务管理专业推荐信
2013/11/19 职场文书
公司活动策划方案
2014/01/13 职场文书
保密普查工作实施方案
2014/02/25 职场文书
销售经理岗位职责
2014/03/16 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
公司担保书格式范文
2014/05/12 职场文书
校园文明倡议书
2014/05/16 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
python实现手机推送 代码也就10行左右
2022/04/12 Python