js中的cookie的读写操作示例详解
cookie是有有效期的,cookie的默认有效期是从cookie生成至浏览器关闭,也可以通过设置cookie的有效期来指定其失效日期;用户也可以禁止cookie也可以手动删除cookie。
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等方法,使得本地存储数据的方法操作更为简单便利
js中的cookie的读写操作示例详解相关推荐
- js中的cookie的读写操作
cookie cookie是一小段信息,以键/值对的信息保存在计算机硬盘上的字符串, cookie存储容量大概在4kb,不同的浏览器厂家对cookie大小的限制有微微的差异:cookie主要的本质是& ...
- python实例化是什么意思_Python中实例化class的执行顺序示例详解
前言 本文主要介绍了关于Python实例化class的执行顺序的相关内容,下面话不多说了,来一起看看详细的介绍吧 Python里对类的实例化时有怎样的顺序 一般来说一个类里面有类变量和方法,比如我们定 ...
- mysql去重函数的使用方法_MySQL中使用去重distinct方法的示例详解
一 distinct 含义:distinct用来查询不重复记录的条数,即distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而 ...
- html offsetwidth 字符串宽度,基于js中style.width与offsetWidth的区别(详解)
作为一个初学者,经常会遇到在获取某一元素的宽度(高度.top值...)时,到底是用 style.width还是offsetWidth的疑惑. 1. 当样式写在行内的时候,如 时,用 style.wid ...
- C语言文件读写操作(详解)
数据流和缓冲区是什么?文件类型和文件存取方式都有啥? 数据流 就C程序而言,从程序移进,移出字节,这种字节流就叫做流.程序与数据的交互是以流的形式进行的.进行C语言文件的读写时,都会先进行" ...
- Scala高阶函数操作示例详解
Scala 运算符和集合转换操作示例集锦 一.常用操作符(操作符其实也是函数) ++ ++[B](that: GenTraversableOnce[B]): List[B] 从列表的尾部添加另外一个列 ...
- JS中NaN、NULL、undefined、详解
NaN:保留字(表明数据类型不是数字) undefined:对象属性或方法不存在,或声明了变量但从未赋值. 即当你使用了对象未定的属性或者未定义的方法时或当你声明一个变量,但你确从未对其进行赋值,便对 ...
- js中的事件委托或是事件代理详解(转载)
起因: 1.这是前端面试的经典题型,要去找工作的小伙伴看看还是有帮助的: 2.其实我一直都没弄明白,写这个一是为了备忘,二是给其他的知其然不知其所以然的小伙伴们以参考: 概述: 那什么叫事件委托呢?它 ...
- js中的事件委托或是事件代理详解
参考文章:https://www.cnblogs.com/liugang-vip/p/5616484.html 概述 事件委托也叫事件代理,JavaScript高级程序设计上讲:事件委托就是利用事件冒 ...
- mysql currentuser_MySQL中DATABASE()和CURRENT_USER()函数的示例详解
本篇文章我们给大家介绍MySQL中DATABASE()和CURRENT_USER()函数的区别,希望对需要的朋友有所帮助! DATABASE()函数 MySQL中的DATABASE()函数返回默认或当 ...
最新文章
- dell服务器状态监控系统,Nagios监控Dell服务器硬件状态
- Zabbix 2.4.4升级到Zabbix 3.2.6
- Spring Cloud Data Flow手动安装
- CodeForces - 1321D Navigation S.ystem(最短路+思维)
- Spring Boot结合spring-data-jpa
- 《现代操作系统》精读与思考笔记 第七章 多媒体
- 实例50:python
- 微信团队分享:微信移动端的全文检索多音字问题解决方案
- 【老杜】MySQL—day02
- python 多线程 popen ping指定IP是否在线 判断连通
- sqlitestudio和mysql_SQLiteStudio优雅调试Android手机数据库Sqlite(推荐)
- GDAL库中WFS服务中含有中文不能获取数据的问题
- Spark与深度学习框架——H2O、deeplearning4j、SparkNet
- sqlserver 数据库文件损坏、数据库可疑修复处理
- 摄动理论求解非线性单摆振动问题
- 关于VS2019调试问题:进程已退出,代码为-1073741819(已解决)
- c语言setw,在C++中,setw(int n)
- 常见CRC算法与C实现
- sql注入漏洞--sqlmap使用
- Minecraft 1.18.1、1.18.2模组开发 21.传送门(Portal)