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 相关文章推荐
js实现简单div拖拽功能实例
May 12 Javascript
js实现文字在按钮上滚动的方法
Aug 20 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
Aug 25 Javascript
使用Object.defineProperty实现简单的js双向绑定
Apr 15 Javascript
浅谈js script标签中的预解析
Dec 30 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
Jun 22 Javascript
基于JS实现移动端左滑删除功能
Jul 28 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
Nov 03 Javascript
vue axios 二次封装的示例代码
Dec 08 Javascript
vue权限路由实现的方法示例总结
Jul 29 Javascript
Layui动态生成select下拉选择框不显示的解决方法
Sep 24 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
Oct 15 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 MemCached 高级缓存应用代码
2010/08/05 PHP
php下封装较好的数字分页方法
2010/11/23 PHP
php的数组与字符串的转换函数整理汇总
2013/07/18 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
2015/04/03 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
2015/03/25 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
详解Javascript中的原型OOP
2016/10/12 Javascript
微信小程序  action-sheet详解及实例代码
2016/11/09 Javascript
jQuery监听浏览器窗口大小的变化实例
2017/02/07 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
javascript算法之二叉搜索树的示例代码
2017/09/12 Javascript
JavaScript设计模式之观察者模式实例详解
2019/01/16 Javascript
微信小程序登陆注册功能的实现代码
2019/12/10 Javascript
Python strip lstrip rstrip使用方法
2008/09/06 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
python继承threading.Thread实现有返回值的子类实例
2020/05/02 Python
python 实现音频叠加的示例
2020/10/29 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
css 元素选择器的简单实例
2016/05/23 HTML / CSS
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
在线实验室测试:HealthLabs.com
2020/05/03 全球购物
易程科技软件测试笔试
2013/03/24 面试题
预防传染病方案
2014/06/14 职场文书
创建文明城市标语
2014/06/16 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书