JS基础——Cookie与存储

一、Cookie是什么

Cookie是一种客户端(浏览器)把用户信息以文件形式存储到本地硬盘的技术,说白了就是一种浏览器技术

二、Cookie的作用

Cookie的作用很单一,就是存储客户数据。(存储数据的文件叫Cookie文件)

三、Cookie与变量的区别

变量:数据是存储到内存中的,是一种暂时存储(一关浏览器就没了)

Cookie:数据是存储到Cookie文件中的(硬盘),是一种长期存储(即使关了浏览器还存在)

四、Cookie的注意事项

1、不同浏览器存放Cookie的位置不同,也是不能通用的

2、Cookie文件的存储以域名形式进行区分的

3、Cookie的数据可以设置名字(为了存储大量数据和方便操作这些数据)

4、一个域名下存放Cookie的数量是有限的,而不同浏览器存放的个数不同

5、每个cookie存放的内容大小也是有限的,而不同浏览器存放内容大小不同

五、从Cookie中获取数据

语法格式:

document.cookie  //name=leo; age=32

我们通过document.cookie来获取当前域名下的cookie时候,得到的是一个字符串类型的值,它包含了当前域名下的所有cookie。所有cookie通过一个分号+空格连接起来

六、向Cookie中写入数据

语法格式:

document.cookie = 'username=leo';
document.cookie = 'age=17';

七、Cookie长期存储数据

如果Cookie要长时间存储数据,需要在写入Cookie时同时给它设置一个过期时间

语法格式:document.cookie = ‘username=leo;expires=‘ + 时间;

注意:Cookie文件默认是临时存储的,当浏览器关闭时自动销毁。

var oDate = new Date();
oDate.setDate(oDate.getDate() + 5);
document.cookie = 'username=leo;expires=' +oDate;

八、IE兼容问题

上面这种Cookie长期存储数据,在ie中有兼容性问题。

原因:oDate是object类型,而cookie中要求oDate必须是字符串

解决:把oDate转化成string类型

var oDate = new Date();
oDate.setDate(oDate.getDate() + 5);
document.cookie = 'username=leo;expires=' +oDate.toGMTString();

九、存储特殊字符问题

问题:在Cookie存储特殊字符的时候(例如:中文、转义字符等),存储不了特殊字符

解决:内容最好编码存放(encodeURI编码,decodeURI解码)

var oDate = new Date();
oDate.setDate(oDate.getDate() + 5);
document.cookie = 'username='+encodeURI('你好吗')+';expires=' +oDate.toGMTString();
alert(decodeURI(document.cookie));

十、封装读取单个Cookie值的方法

由于document.cookie获取的是该网站下的所有cookie值,为了能够获取所需的那个值,我们必须自己封装函数。

//读取Cookie的方法
function getCookie(key){
        var arr1 = document.cookie.split('; ');
        for(var i=0;i<arr1.length;i++){
                var arr2 = arr1[i].split('=');
                if(arr2[0] == key){
                        return decodeURI(arr2[1]);
                }
        }
}

十一、封装写入Cookie的方法

function setCookie(key,value,t){
        var oDate = new Date();
        oDate.setDate(oDate.getDate() + t);
        document.cookie = key + '=' + encodeURI(value) + ';expire=' + oDate.toGMTString();
}
时间: 2024-12-23 05:17:31

JS基础——Cookie与存储的相关文章

js 处理 cookie的存储与删除

<script> //JS操作cookies方法! //写cookies function setCookie(c_name, value, expiredays){ var exdate=new Date(); exdate.setDate(exdate.getDate() + expiredays); document.cookie=c_name+ "=" + escape(value) + ((expiredays==null) ? "" : &q

js读写Cookie问题(Cookie存储时长、Cookie存储域)汇总

在采集网站用户行为数据/使用js对用户行为做交互时,经常会使用到Cookie,了解Js Cookie的读写,以及一些细节,非常重要.   什么是Cookie 所谓Cookie,只是一条极为短小的信息,它被浏览器自动地放置在访问用户的电脑硬盘中. 例如:C:\Users\[user]\AppData\Roaming\Microsoft\Windows\Cookies 如上图所示,打开的一个文件里面,标示了一个域下多个Cookie的信息. 检测/判断浏览器是否支持Cookie 在绝大多数浏览器中,可

【 js 基础 】Javascript “继承”

是时候写一写 "继承"了,为什么加引号,因为当你阅读完这篇文章,你会知道,说是 继承 其实是不准确的. 一.类1.传统的面向类的语言中的类:类/继承 描述了一种代码的组织结构形式.举个例子:"汽车"可以被看作是"交通工具"的一种特例.我们可以定义一个 Vehicle 类和一个 Car 类来对这种关系进行描述.Vehicle 的定义可能包含引擎.载人能力等,也就是 所有交通工具,比如飞机.火车和汽车等都有的通用的功能描述.在对 Car 类进行定义的

js操作cookie

    前言 最近的一个项目需要做用户最近浏览的效果,需要使用cookie存储的方式来实现,找了一下相关的资料,于是便有了本篇博文,写js操作cookie的文章挺多的,不过我觉得自己还有必要记录一的,毕竟自己的东西印象更加的深刻,也方便以后的查找使用,再次感谢一下网络资料的无私奉献者们——祝你们身体健康,愿上帝与你们同在. 1:处理cookie的js文件,代码简单注释尚可,建议先看一下W3C有关cookie资料(链接往下拉!) /*useCookie.js:处理cookie的文件*/ /** *

运用JS设置cookie、读取cookie、删除cookie

运用JS设置cookie.读取cookie.删除cookie JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 假 设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来 引用temp的变量值,对于JS中的全局变量或者静态变量的生命周期是有限的,当发生页面跳转或者页面关闭

JS基础四

1.函数是一组可以随时随地运行的语句. 函数是 ECMAScript 的核心. 函数是由这样的方式进行声明的:关键字 function.函数名.一组参数,以及置于括号中的待执行代码. 2.闭包,指的是词法表示包括不被计算的变量的函数,也就是说,函数可以使用函数之外定义的变量. 3.把对象的所有引用都设置为 null,可以强制性地废除对象.object  设置为null, 4.本地对象(native object) Object Function Array String Boolean Numb

JS设置cookie、读取cookie、删除cookie

Js操作Cookie总结(设置,读取,删除),工作中经常会用到的哦!下面是详细代码,如有错误,请留言指正! JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 假设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来引用temp的变量值,对于JS中的全局变量或者静态变量的生

JS基础知识回顾:变量、作用域和内存问题

ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值. 基本类型值指的是简单的数据段,而引用类型值指的是那些可能由多个值构成的对象. 引用类型的值是保存在内存中的对象,与其他语言不同,JavaScript不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间. 在操作对象时,实际上是在操作对象的引用而不是实际的对象. 在很多语言中,字符串以对象的形式来表示,因此被认为是引用类型的,ECMAScript放弃了这一传统. 定义基本类型值和引用类型值的方式是类似的:创建

js基础学习笔记(二)

2.1  输出内容(document.write) document.write() 可用于直接向 HTML 输出流写内容.简单的说就是直接在网页中输出内容. 第一种:输出内容用“”括起,直接输出""号内的内容. <script type="text/javascript"> document.write("I love JavaScript!"); //内容用""括起来,""里的内容直接输出.