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 :first选择器使用介绍
Aug 09 Javascript
jQuery javaScript捕获回车事件(示例代码)
Nov 07 Javascript
收集json解析的四种方法分享
Jan 17 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
May 15 Javascript
浅谈javascript中基本包装类型
Jun 03 Javascript
使用JavaScript实现连续滚动字幕效果的方法
Jul 07 Javascript
jQuery实现Select下拉列表进行状态选择功能
Mar 30 jQuery
使用jquery的jsonp如何发起跨域请求及其原理详解
Aug 17 jQuery
微信小程序中setInterval的使用方法
Sep 29 Javascript
解决vue接口数据赋值给data没有反应的问题
Aug 27 Javascript
JavaScript之解构赋值的理解
Jan 30 Javascript
手写实现JS中的new
Nov 07 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 class类的用法详细总结
2013/10/17 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
javascript观察者模式实现自动刷新效果
2017/09/05 Javascript
纯js代码生成可搜索选择下拉列表的实例
2018/01/11 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
一百行JS代码实现一个校验工具
2019/04/30 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
基于Python实现的ID3决策树功能示例
2018/01/02 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
2018/10/17 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
django中使用POST方法获取POST数据
2019/08/20 Python
python统计mysql数据量变化并调用接口告警的示例代码
2020/09/21 Python
python urllib和urllib3知识点总结
2021/02/08 Python
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
Volcom法国官网:美国冲浪滑板品牌
2017/05/25 全球购物
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
百度吧主申请感言
2014/01/12 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
交通事故协议书范本
2014/11/18 职场文书
培训学校2015年度工作总结
2015/07/20 职场文书
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis