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 可排列的表实现代码
Nov 13 Javascript
js function定义函数使用心得
Apr 15 Javascript
商城常用滚动的焦点图效果代码简单实用
Mar 28 Javascript
把jQuery的类、插件封装成seajs的模块的方法
Mar 12 Javascript
js确认删除对话框适用于a标签及submit
Jul 10 Javascript
常用的JavaScript WEB操作方法分享
Feb 28 Javascript
JavaScript中的闭包介绍
Mar 15 Javascript
JS版元素周期表实现方法
Aug 05 Javascript
手写Node静态资源服务器的实现方法
Mar 20 Javascript
详解webpack 热更新优化
Sep 13 Javascript
vue实现分页加载效果
Dec 24 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
Oct 29 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
分享php多功能图片处理类
2016/05/15 PHP
利用laravel+ajax实现文件上传功能方法示例
2017/08/13 PHP
PHP实现正则匹配所有括号中的内容
2018/06/22 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
2019/10/24 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
jQuery代码优化之基本事件
2011/11/01 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
深入理解JavaScript系列(34):设计模式之命令模式详解
2015/03/03 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
Vue Ajax跨域请求实例详解
2017/06/20 Javascript
vuejs父子组件之间数据交互详解
2017/08/09 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
微信小程序scroll-view组件实现滚动动画
2018/01/31 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
微信小程序实现获取小程序码和二维码java接口开发
2019/03/29 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
javascript sort()对数组中的元素进行排序详解
2019/10/13 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
Python时间的精准正则匹配方法分析
2017/08/17 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
硕士研究生自我鉴定
2013/11/08 职场文书
公司委托书怎么写
2014/08/02 职场文书
Mysql 如何查询时间段交集
2021/06/08 MySQL
详解NodeJS模块化
2021/06/15 NodeJs