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 性能优化手册 推荐
Feb 23 Javascript
JS TextArea字符串长度限制代码集合
Oct 31 Javascript
JQuery显示、隐藏div的几种方法简明总结
Apr 16 Javascript
AngularJS中的过滤器使用详解
Jun 16 Javascript
jQuery编写网页版2048小游戏
Jan 06 Javascript
JS实现iframe自适应高度的方法示例
Jan 07 Javascript
手机端转换rem适应
Apr 01 Javascript
ES6下React组件的写法示例代码
May 04 Javascript
使用axios实现上传图片进度条功能
Dec 21 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
Feb 01 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
Mar 01 Javascript
JavaScript 闭包的使用场景
Sep 17 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/07/05 PHP
php简单复制文件的方法
2016/05/09 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
php中字符串和整数比较的操作方法
2019/06/06 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
javascript操作css属性
2013/12/30 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
Javascript显示和隐藏ul列表的方法
2015/07/15 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
记录一次完整的react hooks实践
2019/03/11 Javascript
JavaScript页面倒计时功能完整示例
2019/05/15 Javascript
Python正则表达式的使用范例详解
2014/08/08 Python
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
Python 使用PIL numpy 实现拼接图片的示例
2018/05/08 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
基于python和flask实现http接口过程解析
2020/06/15 Python
python3实现名片管理系统(控制台版)
2020/11/29 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
一百多行代码实现react拖拽hooks
2021/03/23 Javascript
关于爱情的广播稿
2014/01/16 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
购房委托书
2014/10/15 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
python的列表生成式,生成器和generator对象你了解吗
2022/03/16 Python
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby