JS学习笔记Day13
一、cookie
(一)什么是cookie:
1、就是会话跟踪技术,存放在客户端浏览器中的一段文本信息
2、会话:从浏览网站开始到结束的这个过程称为一次会话,浏览器关闭,表示会话结束
3、会话跟踪技术:客户端向服务器请求数据,多次请求时,实现数据共享的过程,称为会话跟踪技术

(二)cookie的存取
1、document.cookie 取cookie
2、document.cookie = "键 = 值";
(三)字符串和对象类型的转换
1、将字符串转成对象:JSON.parse();
2、将对象转成字符串:JSON.stringify();
拓展:encodeURIComponent();把字符串作为 URI 组件进行编码
decodeURIComponent();编码的 URI 进行解码
(四)cookie的生存期
1、生存期:cookie数据在浏览器中保存的时间
如果不设置生存期,浏览器关闭,表示会话结束,cookie数据自动删除
如果设置生存期,浏览器关闭,cookie数据会保存在浏览器上,生存期内cookie不会自动删除
2、如何设置生存期(需要expires参数)
document.cookie = "键 = 值;expires = 过期时间(也就是date)" 过期时间格式:要求标准时间格式;
3、如何设置根目录
path = /;
(五)删除cookie
1、将某个键的值,设置为""或将生存期设置为-1
(六)使用cookie需要注意
1、cookie存储的数据安全性低
2、cookie存储数据量小,最多存4KB数据,一般不超过50个cookie
3、cookie不能跨文件访问,在a目录下存储的cookie在b目录下不能访问到a中的cookie数据
4、cookie参数:必须有一个键值对
(七)如何封装cookie
function setCookie(key,value,newDate){
var txtCookie = encodeURIComponent(key) + "=" +encodeURIComponent(value);
if(newDate){
var date = new Date();
date.setDate(date.getDate() + newDate);
document.cookie = txtCookie + ";expires=" + date + ";path=/";
}else{
document.cookie = txtCookie + "=" + value + ";path=/";
}
}//设置cookie
function getCookie(key){
var str = document.cookie;
if(str){
var arr = str.split("; ");
for(var i = 0,len = arr.length;i < len;i++){
var newArr = arr[i].split("=");
if(newArr[0] === encodeURIComponent(key)){
return decodeURIComponent(newArr[1]);
}
}
return "";
}
return "";
}//获取cookie
function removeCookie(key){
setCookie(key,'',-1);
}//删除cookie
二、浏览器允许每个域名所包含的cookie数:
Microsoft指出InternetExplorer8增加cookie限制为每个域名50个,但IE7似乎也允许每个域名50个cookie
Firefox每个域名cookie限制为50个
Opera每个域名cookie限制为30个
Safari/WebKit貌似没有cookie限制;但是如果cookie很多,则会使header大小超过服务器的处理的限制,会导致错误发生。
注:“每个域名cookie限制为20个”将不再正确!
三、当很多的cookie被设置,浏览器如何去响应。
除Safari(可以设置全部cookie,不管数量多少),有两个方法:
最少最近使用(leastrecentlyused(LRU))的方法:当Cookie已达到限额,自动踢除最老的Cookie,以使给最新的Cookie一些空间。Internet Explorer和Opera使用此方法。
Firefox很独特:虽然最后的设置的Cookie始终保留,但似乎随机决定哪些cookie被保留。似乎没有任何计划(建议:在Firefox中不要超过Cookie限制)。
四、不同浏览器间cookie总大小也不同:
Firefox和Safari允许cookie多达4097个字节,包括名(name)、值(value)和等号。
Opera允许cookie多达4096个字节,包括:名(name)、值(value)和等号。
Internet Explorer允许cookie多达4095个字节,包括:名(name)、值(value)和等号。
注:多字节字符计算为两个字节。在所有浏览器中,任何cookie大小超过限制都被忽略,且永远不会被设置。
JS学习笔记Day13的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Vue.js学习笔记(2)vue-router
vue中vue-router的使用:
- JS 学习笔记--9---变量-作用域-内存相关
JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...
- WebGL three.js学习笔记 使用粒子系统模拟时空隧道(虫洞)
WebGL three.js学习笔记 使用粒子系统模拟时空隧道 本例的运行结果如图: 时空隧道demo演示 Demo地址:https://nsytsqdtn.github.io/demo/sprite ...
- WebGL three.js学习笔记 法向量网格材质MeshNormalMaterial的介绍和创建360度全景天空盒的方法
WebGL学习----Three.js学习笔记(5) 点击查看demo演示 Demo地址:https://nsytsqdtn.github.io/demo/360/360 简单网格材质 MeshNor ...
- WebGL three.js学习笔记 创建three.js代码的基本框架
WebGL学习----Three.js学习笔记(1) webgl介绍 WebGL是一种3D绘图协议,它把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的 ...
- vue.js 学习笔记3——TypeScript
目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...
- 2019-4-29 js学习笔记
js学习笔记一:js数据类型 1:基本数据类型 number类型(整数,小数) String类型 boolean类型 NaN类型其实是一个nu ...
- 一点感悟:《Node.js学习笔记》star数突破1000+
写作背景 笔者前年开始撰写的<Node.js学习笔记> github star 数突破了1000,算是个里程碑吧. 从第一次提交(2016.11.03)到现在,1年半过去了.突然有些感慨, ...
随机推荐
- MongoDB 聚合分组取第一条记录的案例及实现
关键字:MongoDB: aggregate:forEach 今天开发同学向我们提了一个紧急的需求,从集合mt_resources_access_log中,根据字段refererDomain分组,取分 ...
- 关于MongoDB 固定集合(capped collection)的知识梳理
一 . 什么是固定集合 MongoDB中有一种特殊类型的集合,值得我们特别留意,那就是固定集合(capped collection). 固定集合可以声明collection的容量大小,其行为类似于循环 ...
- SQL SERVER-查询爆破sa密码的主机
drop table if exists #sql create table #sql ( Logdatae ), processinfo ), [text] varchar(max) ) go IN ...
- 【转载】FPGA算法映射要点
近期一直在学习利用FPGA完成算法的定点运算,转载些相关的博客方面回顾查找.本博文原文链接为:https://blog.csdn.net/u013989284/article/details/7899 ...
- RabbitMQ广播:fanout模式
一. 消息的广播需要exchange:exchange是一个转发器,其实把消息发给RabbitMQ里的exchange fanout: 所有bind到此exchange的queue都可以接收消息,广播 ...
- 【English】20190416
anti-money laundering反洗钱[ˈænti][ˈlɔːndərɪŋ] misconduct不当行为[ˌmɪsˈkɑːndʌkt] Currently, she is focus ...
- Operation category READ is not supported in state standby
Namenode 开启HA之后,由于zookeeper异常,出现脑裂现象 执行 $./hdfs haadmin -getServiceState nn1 ...
- web框架开发-Django模型层(2)-多表操作
很重要,都是精华 多表关系模型 一对一 一旦确定表关系是一对一,在两张表中的任意一张表中建立关联字段+Unique 一对多 一旦确定表关系是一对多,创建关联字段在多的表中 多对多 一旦确定表关系是多对 ...
- Jenkins + Ansible + Gitlab之ansible篇
Ansible介绍 什么是Ansible? Ansible是一个开源部署工具 开发语言:Python 特点:SSH协议通信,全平台,无需要编译,模块化部署管理 作用:推送Playbook进行远程节点快 ...
- MongoDB 用MongoTemplate查询指定时间范围的数据
mongoDB大于小于符号对应: > 大于 $gt< 小于 $lt>= 大于等于 $gte<= 小于等于 $lte 要查询同一个时间多个约束可能出现的error: org.sp ...