网络系列之 cookie增删改查(封装)
什么是cookie 呢?简单来说,这个小东西,会记录你的 浏览器 浏览习惯,或 账号密码等, 以便于提高用户的体验感。
举个例子:
你们有没有发现,去淘宝一些购物网站, 你搜索了 椅子, 挑选了一会椅子,然后把页面关了, 等下再打开淘宝的时候, 淘宝会自动帮你推荐一些椅子 出来。这就是淘宝这个网页,利用cookie记录了你的需要,以便于下次,你再使用的时候,可以更方便。
还有qq邮箱登录,只要在QQ邮箱登录过, 你下次再去打开这个网页,你会发现,你的QQ账号,已经自动帮你填好了。
那么,接下来,我们来看cookie 怎么获取。
document.cookie 获取出来的 数据 为字符串形式。
domain 是 域,因为本次测试在 本地的服务器下进行, 所以是localhost
path 是路径
max-age 是存储cookie 的时间, 如果为 Session(临时存储,关闭页面即消失), 显示的时间是 格林威治的时间
获取刚才设置的cookie
可以看到, 我们获取到的cookie 除了name 和 value 没有其他值的。
删除的话,cookie的时间过去,就会自动删除, 那么我们想要删除的话,就让他的时间变成 -1 即可。
现在来封装一下,cookie的 增删改查
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head> <body>
<script>
var manageCookie = {
setCookie: function (name, value, time) { //设置cookie 可以传入三个值, name value 和 时间
document.cookie = name + '=' + value + ';max-age=' + time;
return this; //这里返回 this, 是为了可以链式调用。
},
getCookie: function (name, cb) { //cb 是回调函数。
var temp = document.cookie.split('; '); //由于我们获取出来的 cookie 是 name=value; name=value 的字符串,所以拆分它。
for (var i = 0; i < temp.length; i++) {
var arr = temp[i].split('='); //按照 ; 拆完后,成 [name=value] [name=value] 那么我们循环 继续按照 = 拆
if (arr[0] == name) { //此时我们就可以拿到 name 值进行判断, 如果跟形参一样,说明要获取的 值就是他
cb(arr[1]); //那么我们执行 cb回调函数, 把 value 传回去即可
return this; //return this, 停止继续循环
}
}
cb(undefined); //如果找不到,我们传undefined 回去即可
return this;
},
removeCookie: function (name) {
this.setCookie(name, '', -1); // 删除的话,调用我们上面设置cookie的 函数, 把时间改成 -1 即可
return this;
}
}
</script>
</body> </html>
使用一下
网络系列之 cookie增删改查(封装)的更多相关文章
- Python pymysql 增删改查封装
关于pymysql 的增删改查,简单做个封装,方便后面使用直接拿来调用即可. 其中 增删改 的处理其实是一致的,本可以使用统一的方法,但是为了明显区分,这里分开来写了. 直接看代码就即可,如下: # ...
- PDO 增删改查封装的类
Selecting Data 你在mysql_*中是这样做的 <?php $result = mysql_query('SELECT * from table') or die(mysql_er ...
- spring学习(四)spring的jdbcTemplate(增删改查封装)
Spring的jdbcTemplate操作 1.Spring框架一站式框架 (1)针对javaee三层,每一层都有解决技术 (2)到dao 层,使用 jdbcTemplate 2.Spring对不同的 ...
- C# 数据操作系列 - 15 SqlSugar 增删改查详解
0. 前言 继上一篇,以及上上篇,我们对SqlSugar有了一个大概的认识,但是这并不完美,因为那些都是理论知识,无法描述我们工程开发中实际情况.而这一篇,将带领小伙伴们一起试着写一个能在工程中使用的 ...
- 微软Connect教程系列--自动生成增删改查页面工具介绍(二)
本章课程描述了vs2015的三个特点,其中主要将描述在vs2015下面,使用命令自动生成增删改查界面,具体如下: 1.web.config文件不在存在,用config.json替代,以适应支撑vs的插 ...
- python 10min系列之实现增删改查系统
woniu-cmdb 奇技淫巧--写配置文件生成增删改查系统 视频教程 项目主页跪求github给个star, 线上demo,此页面都是一个配置文件自动生成的 详细的文章介绍和实现原理分析会发布在我的 ...
- .Net程序员学用Oracle系列(12):增删改查
1.插入语句 1.1.INSERT 1.2.INSERT ALL 2.删除语句 2.1.DELETE 2.2.TRUNCATE 3.更新语句 3.1.UPDATE 3.2.带子查询的 UPDATE 3 ...
- python之MySQL学习——简单的增删改查封装
1.增删改查封装类MysqlHelper.py import pymysql as ps class MysqlHelper: def __init__(self, host, user, passw ...
- sql增删改查封装
App.config文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> ...
随机推荐
- IntelliJ IDEA 使用指南:集成GIT客户端
一.安装GIT客户端 首先需要在本地安装好GIT的客户端. GIT客户端官网下载地址:https://www.git-scm.com/download/ 安装说明 Linux系统安装 使用yum指令 ...
- router-view组件在app.vue中渲染不出来怎么办
1.在app.vue使用router-view组件直接渲染 页面什么都没显示,可能问题出在路由配置上了,检查路由是否配置完好,路由挂载那里必须使用routes属性 2.在app.vue中router- ...
- 技术选型:为什么批处理我们却选择了Flink
最近接手了一个改造多平台日志服务的需求,经过梳理,我认为之前服务在设计上存在缺陷.经过一段时间的技术方案调研,最终我们决定选择使用 Flink 重构该服务. 目前重构后的服务已成功经受了国庆节流量洪峰 ...
- CentOS 7 搭建 Ceph 集群(nautilus 版本)
搭建 Ceph 分布式集群( nautilus 版本 ) 一.服务器环境说明 主机名 角色 IP地址 ceph-admin ceph-deploy 192.168.92.21 ceph-node1 m ...
- AtCoder 1807 食塩水
题意 有 \(n\) 瓶食盐水,第 \(i\) 瓶为质量 \(w_i\),浓度 \(p_i\%\) 的食盐水,需要选出 \(k\) 瓶食盐水混合在一起,问最大浓度. \(\texttt{Data Ra ...
- STM32入门系列-开发工具keil5安装
主要介绍如下三部分内容: keil5软件获取 keil5安装 安装STM32芯片包 软件获取 可以通过搜索引擎搜索关键字"KEIL5下载",找到其官方网站www.keil.com. ...
- Java-GUI基础(三)java.swing
1. 简介 swing与awt:可以认为awt是swing的前身,awt即Abstrace Window Toolkit抽象窗口工具包,swing是为了解决awt在开发中的问题而开发的,是awt的改良 ...
- C++语言学习之STL 的组成
STL有三大核心部分:容器(Container).算法(Algorithms).迭代器(Iterator),容器适配器(container adaptor),函数对象(functor),除此之外还有S ...
- 6、Django之模型层第一篇:单表操作
一 ORM简介 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(如增.删.改.查),而一旦谈到数据的管理操作,就需要用到数据库管理软件,例如mysql.oracle ...
- C++常见的面试题目整理
本文列出C++面试中经常遇到的一些问题,都是一些常见的面试考点,如果后续遇到其他常见面试问题还会再次更新.希望对近期参加面试的同学有一些帮助.先后顺序与问题的重要性无关,查看的时候,最好是全面了解一下 ...