[JS]笔记15之客户端存储cookie

-->本地存储发展情况

-->什么是cookie
-->cookie优缺点
-->cookie的设置、读取、删除
-->cookie应用

本地存储发展情况

一、什么是cookie

1、什么是cookie

cookie是存储于访问者计算机中的变量
cookie是浏览器提供的一种机制,可以由JavaScript对其进行操作(设置、读取、删除)

2、cookie的特性

cookie可以实现跨页面全局变量
cookie可以跨越同域名下的多个网页,但不能跨域使用
同一个网站中所有页面共享一套cookie
可以设置有效期限
存储空间为4KB左右

二、cookie优缺点

1、cookie的优点
cookie可以跨越同域名下的多个网页使用
cookie可以实现跨页面全局变量
同一个网站中所有页面共享一套cookie
可以设置有效期限

cookie机制将信息存储于用户硬盘,因此可以作为跨页面全局变量,这是它最大的一个优点
常用场合:(1)保存用户登录状态;(2)跟踪用户行为;(3)定制页面;(4)创建购物车 ...等等

2、cookie的缺点

(1)cookie可能被禁用;
(2)cookie与浏览器相关,不能互相访问;
(3)cookie可能被用户删除;
(4)cookie安全性不够高;
(5)cookie存储空间很小(只有4KB左右)
(6)cookie操作麻烦,没有方便的API

三、cookie的设置、读取、删除

1、Cookie设置
每个cookie都是一个名/值对(key=value)格式的字符串
例如: document.cookie="user1=YY";
如果要改变一个cookie的值,只需重新赋值
例如: document.cookie="user1=QQ";

设置有效期:
var dates=new Date();
dates.setDate(dates.getDate()+3); //按天数设置
document.cookie="user1=YY; expires="+dates;

2、读取cookie
document.cookie="user1=YY";
document.cookie="user2=MM";
var cookies=document.cookie; //获取
alert(cookies);
返回:"user1=YY; user2=MM"
只能够一次获取所有的cookie值
用户必须自己解析这个字符串,来获取指定的cookie值
split() 方法用于把一个字符串分割成字符串数组

3、cookie值编码处理
在cookie 的名或值中不能使用分号(;)、逗号(,)、
等号(=)以及空格等特殊符号。在cookie的名中做到这点很容易,但要保存的值可能是不确定的。

用escape( )函数进行编码,它能将一些特殊符号使用十六进制表示,从而可以存储于cookie值中

当使用escape( )编码后,在取出值以后需要使用unescape( )进行解码才能得到原来的cookie值。

4、删除cookie
cookie过期会自动消失
要删除一个cookie,可将其有效期设为一个过去的时间

例如:

var date=new Date();

dates.setDate(dates.getDate()-1);

document.cookie="user1=YY; expires="+dates;

cookie设置、获取、删除及编码处理代码练习:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>setCookie&getCookie&rmCookie</title>
 6 </head>
 7 <body>
 8     <h1 id="con">注!!在服务器中打开看效果</h1>
 9 <script>
10 /*cookie设置*/
11     var con=document.getElementById(‘con‘);
12     document.cookie=‘user1=喽喽‘;
13     document.cookie=‘user2=康康‘;
14     document.cookie=‘user3=YY‘;
15     document.cookie=‘user4=QQ‘;
16     //设置有效期
17     var dates=new Date();
18     dates.setDate(dates.getDate()+7);
19     document.cookie=‘user1=小楼欧;expires=‘+dates;
20 /*setCookie-设置cookie值--封装函数*/
21     function setCookie(key,val,Days){
22         var dates=new Date();
23         dates.setDate(dates.getDate()+Days);
24         document.cookie=key+‘=‘+escape(val)+‘;expires=‘+dates;
25     }
26     setCookie(‘user5‘,‘set函数1‘,20);
27     setCookie(‘user6‘,‘set;函,数9890=1‘,20);
28 /*cookie读取*/
29     //1、一次获取所有的cookie值
30     var cookies=document.cookie;
31     console.log(cookies);//user=YY; user2=康康; user3=YY; user4=QQ; user1=小楼欧; user5=函数1
32     //2、必须自己解析这个字符串,来获取指定的cookie值
33     var arr=cookies.split(‘; ‘);
34     console.log(arr);//["user=YY", "user2=康康", "user3=YY", "user4=QQ", "user1=小楼欧", "user5=函数1"]
35     var arr2=arr[4].split(‘=‘);
36     console.log(arr2);//["user1", "小楼欧"]
37     console.log(arr2[1]);//小楼欧
38 /*getCookie--获取cookie值--封装函数*/
39     function getCookie(key){
40         var arr=document.cookie.split(‘; ‘);//获取所有的cookie值
41         for (var i = 0; i < arr.length; i++) {
42             var arr2=arr[i].split(‘=‘);//["user1", "小楼欧"]
43             if (arr2[0]==key) {
44                 return unescape(arr2[1]);
45             }
46         }
47         return false;//没有返回false
48     }
49     console.log(getCookie(‘user2‘));//康康
50     console.log(getCookie(‘user6‘));//set;函,数9890=1
51 /*rmCookie--删除cookie--封装函数*/
52     var date2=new Date();
53     date2.setDate(date2.getDate()-1);
54     document.cookie=‘user4=11;expires=‘+date2;
55     function rmCookie(key){
56         setCookie(key,‘0‘,-1);
57     }
58     rmCookie(‘user2‘);
59 </script>
60 </body>
61 </html>

效果笔记:https://www.cnblogs.com/duenyang/

时间: 2024-08-11 01:20:30

[JS]笔记15之客户端存储cookie的相关文章

客户端存储cookie

1.cookie是一种早期的客户端存储机制,起初是针对服务器端脚本的设计使用的. 尽管在客户端提供了非常繁琐的api 来操作cookie,但他们难用至极,而且只能 存储少量的文本数据,任何以cookie形式存储的数据无论服务端是否需要,每一次http请求 都会把这些数据传输到服务端.cookie目前任然被客户端程序员大量使用的一个重要原因是: 所有新旧浏览器都支持它.但是,随着Web Storage 的普及,cookie最终会回到最初的状态: 作为一种被服务端脚本使用的客户端存储机制. 2.co

客户端存储cookie ---(优缺点及定义及用途)

什么是cookie cookie是存储于访问者计算机中的变量 cookie是浏览器提供的一种机制,可以由JavaScript对其进行操作(设置.读取.删除) cookie的特性 cookie可以实现跨页面全局变量 cookie可以跨越同域名下的多个网页,但不能跨域使用 同一个网站中所有页面共享一套cookie 可以设置有效期限 存储空间为4KB左右 cookie的优点 cookie可以跨越同域名下的多个网页使用 cookie可以实现跨页面全局变量 同一个网站中所有页面共享一套cookie 可以设

《Javascript权威指南》学习笔记之十八:BOM新成就(1)--客户端存储数据(Web SQL DataBase实现)

使用本地存储和会话存储可以实现简单的对象持久化,可以对简单的键值对或对象进行存储.但是,对于比较复杂的关系数据进行处理时,就要用Web SQL Database.浏览器对Web SQL Database的支持情况如图: 一.如何使用Web SQL Database <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-t

JS创建和存储 cookie一些方法总结

在js中cookie的操作与存储及清除cookie都与时间有关,我们只要把cookie过期时间进行有效的设置我们就可以控制它的存储了,下面我来给大家总结一下js中cookie的一些使用技巧 创建和存储 cookie 在这个例子中我们要创建一个存储访问者名字的 cookie.当访问者首次访问网站时,他们会被要求填写姓名.名字会存储于 cookie 中.当访问者再次访问网站时,他们就会收到欢迎词. 首先,我们会创建一个可在 cookie 变量中存储访问者姓名的函数: function Setcook

JS中离线应用与客户端存储

1.离线检测:H5定义了navigator.online属性,为true 表示设备能上网 还定义了两个相关事件:online和offline 2 数据存储 cookie--HTTP coolie,客户端存储会话信息的.该标准要求服务器对任意的HTTP请求发送Set-Cookie HTTP头作为响应的一部分' /* HTTP/1.1 200 OK Content-type: text/html Set-Cookie: name=value;expire=expiration_time;path=d

session cookie区别 客户端存储

1.1  Cookie机制 在程序中,会话跟踪是很重要的事情.理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆.例如,用户A在超市购买的任何商品都应该放在A的购物车内,不论是用户A什么时间购买的,这都是属于同一个会话的,不能放入用户B或用户C的购物车内,这不属于同一个会话. 而Web应用程序是使用HTTP协议传输数据的.HTTP协议是无状态的协议.一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接.这就意

HTML5学习笔记之客户端存储数据方法:localStorage(),sessionStorage()

HTML5提供了两种在客户端存储数据的新方法: localStorage():没有时间限制的数据存储 sessionStorage():针对一个session的数据存储 下面的一个例子用localStroage()方法对用户访问页面的次数进行计数 <script type="text/javascript"> if(localStorage.pagecount) { localStorage.pagecount=Number(localStorage.pagecount)+

Web - 客户端存储的几种方式

客户端存储主要方便一些APP离线使用.今天就来说说客户端存储的方法有多少? 说在最前面的一句:所有的客户端存储都有一个原则:读写的数据必须要同域 1 Cookie Cookie是一项很老的技术的,就是因为它老,所以兼容性还是不错的.常见的JS操作Cookie的代码如下: function setCookie(c_name,value,expiredays) { var exdate=new Date() exdate.setDate(exdate.getDate()+expiredays) do

常用的本地存储-----cookie篇

1.引言 随着浏览器的处理能力不断增强,越来越多的网站开始考虑将数据存储在「客户端」,那么久不得不谈本地存储了. 本地存储的好处: 一是避免取回数据前页面一片空白,如果不需要最新数据也可以减少向服务器的请求次数,从而减少用户等待从服务端获取数据的时间. 二是网络状态不佳时仍可以显示离线数据. 2.本地存储 用chrome浏览器打开一个网页,F12进入开发者模式,点击Application,我们可以看到: 以上的Local Stroage . Session Stroage . IndexedDB