1.首先简单总结下cookie
cookie:可以做会话跟踪
特点:
1、大小限制(不能超过4k)
2、每个域下cookie不能超过50个
3、有效期(和设定时间有关),过了有效期cookie会自动删除
4、cookie读取(只能访问同一个域名下的cookie)(域的限制)
5、没有设置存储时间的cookie是临时cookie,浏览器关闭自动删除
6、cookie值只能是字符串
7、cookie访问:子能访问父的cookie 但是父不能访问子的cookie;
1.1 cookie的存储
实例讲解:
基于cookie存储的注册功能:
存储cookie:
reg.onclick = function(){
//将用户名和密码以对象的形式存储
var json = {
"username" : uname.value,
"password" : upwd.value
}
//开始存储cookie
document.cookie = "userinfo="+JSON.stringify(json) ;
//跳转到登录页面
location.href = "../b/login.html";
}
获取cookie:
//页面加载后 获取cookie数据
window.onload = function(){
//取出cookie数据
var str = document.cookie;//userinfo={"username":"admin","password":"111"}
var _json = JSON.parse(str.split("=")[1]);//'{"username":"admin","password":"111"}'
log.onclick = function(){
//如果用户输入的用户名和密码与cookie中的用户名和密码相等 提示登录成功
if( uname.value == _json.username && upwd.value==_json.password ){
alert("登录成功");
}else{
alert("用户名或密码错误");
}
}
}
娥姐经典案例:
cookie用法之简易购物车
存储数据:
var oUl = document.querySelector("ul");
var _json = {};//存一个对象数据
var arr = [];//存好多个对象
var pid = 1;//商品编号
//使用委托为每一个 加入购物车按钮 添加单击事件
oUl.addEventListener("click",(e)=>{
var e = e || event;
var target = e.target || e.srcElement;
if( target.className === "addMe" ){
//将当前点击的商品数据存入到一个对象中
_json = {
"pid" : pid++,
"pname" : target.parentNode.parentNode.children[0].innerHTML,
"price" : target.parentNode.parentNode.children[1].innerHTML
}
//将对象存入到数组中
arr.push( _json );
//将数组存入到cookie中
document.cookie = "prolist=" + JSON.stringify(arr);
}
})
取出:
window.onload = function(){
//页面加载取出数据
var str = document.cookie;
//拆分字符串得到商品数据 数组
var arr = JSON.parse(str.split("=")[1]);
var sum = 0;//累加金额
var str = "";
//遍历数组中的数据 将数据显示到页面上
for( var i = 0 ; i < arr.length ; i++ ){
var pro = arr[i];
sum += Number(pro.price);
str += `<li><span>${pro.pid}</span><span>${pro.pname}</span><span>${pro.price}</span></li>`;
}
demo.innerHTML += str;
//点击按钮 显示金额
btn.onclick = function(){
t.value = sum;
}
}
2.localstorage 本地存储
基本用法: 存取改删
//存数据(增加数据)
btnSave.onclick = function(){
//定义一个localStorage
var storage = window.localStorage;
//向storage中存储数据
//方式一:
storage.sname = "jack";
//方式二:
storage["age"] = 18;
//方式三:
storage.setItem( "tel" , "132xxx" );
}
//取数据
btnGet.onclick = function(){
//定义一个localStorage
var storage = window.localStorage;
//取出localStorage中的数据 根据键取值
console.log( storage.sname , storage["age"] , storage.getItem("tel") );
}
//改数据
btnUpt.onclick = function(){
//定义一个localStorage
var storage = window.localStorage;
//向storage中存储数据
//方式一:
storage.sname = "lily";
//方式二:
storage["age"] = 18;
//方式三:
storage.setItem( "tel" , "156xxx" );
}
//删数据 :根据键删除
btnDel.onclick = function(){
//定义一个localStorage
var storage = window.localStorage;
//根据键删除某个数据
//storage.removeItem("tel");
//清空
storage.clear();
}
- 【原创】js中利用cookie实现记住密码功能
在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: HttpServletRequest request HttpServletResponse res ...
- 在node.js中使用COOKIE
node.js中如何向客户端发送COOKIE呢?有如下两个方案: 一.使用response.writeHead,代码示例: //设置过期时间为一分钟 var today = new Date(); v ...
- js中的cookie使用
在网上找到的资料,收藏一下 function getCookies(name) { var arr = document.cookie.match(new RegExp("(^| )&quo ...
- js 中的cookie
根据智能社31cookie基础与应用总结, cookie的特性: 1.同一个网站,共用一套cookie,实际上是根据域名来区分的. 如t.sina.com.cn ,和weibo.com这两个都是新浪微 ...
- 在jsp页面的js中使用Cookie的原理介绍以及相应方法的代码
1. 设置cookie 1.1 每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie: document.cookie="user_Id=828&q ...
- js中对cookie的操作及json数据与cookie结合的用法
cookie的使用 添加cookie 添加cookie:document.cookie = “key=value”; // 一次写入一个键值对 document.cookie = 'test1=hel ...
- js中的cookie
cookie就是一个存放数据的东西,存储量很小4kb,存放在客户端上和应用设备上. 应用场景 用户注册,用户登录,购物车. Chrome浏览器在计算机中存放cookie的位置 C:\Users\Adm ...
- js中实现cookie的增删改查(document.cookie的使用详情)
一.设置cookie的值 1.每个cookie都是一个名称/值对,名称/值对用等号连接,并将该名称/值对赋值给document.cookie即可.如:document.cookie="id= ...
- js中的cookie使用和vue-cookie的使用
在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cookie规范定义了服务器和客户端交互信息的格式.生存期.使用范围.安全性. 在JavaScrip ...
随机推荐
- 数据结构-二叉树(1)以及前序、中序、后序遍历(python实现)
上篇文章我们介绍了树的概念,今天我们来介绍一种特殊的树--二叉树,二叉树的应用很广,有很多特性.今天我们一一来为大家介绍. 二叉树 顾名思义,二叉树就是只有两个节点的树,两个节点分别为左节点和右节点, ...
- UVA297 四分树 Quadtrees 题解
题目链接: https://www.luogu.org/problemnew/show/UVA297 附几道推荐题目(先完成再食用此题效果更佳) https://www.luogu.org/probl ...
- 2-1. 基于OpenSSL的传输子系统实现
一. 基本传输子系统程序设计 客户端可上传文件至服务器,或下载服务器上的文件 系统程序构架: 客户端 服务器 TCP建立连接 menu()-> 上传命令.下载命令 close(socket) T ...
- Linnux命令大全(vim)
vim复制和粘贴的基本命令(注:需先退出编辑模式) yy复制游标所在行整行.或大写一个Y. (常用) 2yy或y2y复制两行. (常用) y^复制至行首,或y0.不含游标所在处字元. ...
- jQuery表单校验
主要特性: 表单提交前对所有数据进行校验,不符合不让提交(validate) 如果表单校验不通过,自动focus到第一个错误的域 自动在控件后面显示错误提示内容(error message) 支持根据 ...
- Linux中更新firefox
从官网下载Firefox压缩包放在/usr/lib/目录下(应用程序一般都在这个文件夹下) tar jxfv [压缩包名] 解压得到文件夹firefox在解压得到的firefox文件夹中有一个fir ...
- Java编程思想之十七 容器深入研究
17.1 完整的容器分类方法 17.2 填充容器 import java.util.*; class StringAddress { private String s; public StringAd ...
- 『开发技术』Windows极简安装使用face_recognition
face_recognition是一个强大.简单.易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例,特别是兼容树莓派系统.此项目是世界上最简洁的人脸识别库,你可以使用Python和命令行工 ...
- 作为前端的你,CC游戏开发可以上车
1. 初来乍到 打开 Cocos Creator 点击新建空白项目,在默认布局的左下区域,一个黄黄assets文件夹映入眼帘.作为前端的你对这个文件是不是再熟悉不过了.是的,和你想象的一样,开发游戏中 ...
- 2019中山纪念中学夏令营-Day9[JZOJ](第六次模拟赛)
Begin (题目的排序方式:Unkown其实是按心情排的) 异或:(摘自百度百科) 异或(xor)是一个数学运算符.它应用于逻辑运算.异或的数学符号为“⊕”,计算机符号为“xor”.其运算法则为: ...