博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cookie的存取删和封装
阅读量:3923 次
发布时间:2019-05-23

本文共 2887 字,大约阅读时间需要 9 分钟。

cookie的概述

1.localStorage是html5新增

  • 本地储存使用的
  • 永久储存
  • 浏览器支持储存5M大小

2.cookie的概念:

  • Cookie又叫会话跟踪技术是由web服务器保存再用户浏览器上的小文件本
  • web服务器保存
  • 关闭浏览器===会话结束

3.cookie的特点

  • 禁用cookie,无法正常登录。
  • cookie与浏览器相关,不同的浏览器之间的cookie不能互相访问。
  • cookie可以被删除。
  • cookie储存的也是字符串。
  • cookie自由设置过期时间(储存多长时间)
  • cook储存4K大小
  • document.cookie(document来调用)

cookie的存储

1.储存cookie , docuement.cookie 一条条储存,键值对(key=value),如果key相同,覆盖

document.cookie = "name=zhangsan";document.cookie = "age=100";document.cookie = "sex=男";

2.存储带有过期时间的cookie

let d = new Date();//获取当前的日期 //alert(d.getDate());//4 获取当天是多少号  d.setDate(d.getDate()+10);//获取当前的日期+10;在设置回去;  document.cookie="name=zhangsan;expires="+d;//expires:设置过期日期;

3.储存cookie的函数封装

// encodeURIComponent();//对文本框输入的值进行编码,中文,特殊字符编码结果是%加上这些符号的ASCII码十六进制对照表。  	// decodeURIComponent();//输入的值进行解码    function addcookie(key, value, days) {
let d = new Date(); d.setDate(d.getDate() + days); document.cookie = `${
key}=${
encodeURIComponent(value)};expires=${
d}`; } addcookie("name", "张三", 7); addcookie("age", "100", 7); addcookie("sex", "男", 7);

cookie的获取

1.获取cookie–document.cookie获取全部的cookie

目标:传入key,放回key对应的value

alert(document.cookie);//name=%E5%BC%A0%E4%B8%89; sge=100; sex=%E7%94%B7;    console.log(decodeURIComponent(document.cookie));//name=张三; sge=100; sex=男    //获取的全部是cookie中间通过分号和空格连接起来的。("; ")    console.log(decodeURIComponent(document.cookie).split("; "));//利用分号和空格进行拆分    ["name=张三, sge=100, sex=男"];

2.通过封装函数来获取cookie中的某个值

function getcookie(key) {
let cookiearr = decodeURIComponent(document.cookie).split('; '); //console.log(cookiearr);//["name=张三", "sge=100", "sex=男"] for (let i = 0; i < cookiearr.length; i++) {
let newarr = cookiearr[i].split('='); if (key === newarr[0]) {
return newarr[1]; } } } console.log(getcookie("name"));//张三 console.log(getcookie("age"));//100 console.log(getcookie("sex"));//男

cookie的删除

  • 删除cooki-将cookie的过期时间设为一个已经过去的时间。
  • 思路:添加cookie的时候key的值相同,会覆盖;
  • addcookie(“name”,"",-1);addcookie(“name”,"",-1);

封装

function delcookie(key){
addcookie(key,"",-1);} delcookie("name");//删除为name的cookie数据;

综合封装

let jscookie = {
add: function (key, value, days) {
let d = new Date(); d.setDate(d.getDate() + days); document.cookie = `${
key}=${
encodeURIComponent(value)};expires=${
d}`; } , get: function (key) {
let cookiearr = decodeURIComponent(document.cookie).split('; '); //console.log(cookiearr);//["name=张三", "sge=100", "sex=男"] for (let i = 0; i < cookiearr.length; i++) {
let newarr = cookiearr[i].split('='); if (key === newarr[0]) {
return newarr[1]; } } } , del: function (key) {
jscookie.add(key, '', -1); }}jscookie.del("age");//删除名为age的cookie数据;

转载地址:http://wgkgn.baihongyu.com/

你可能感兴趣的文章
C# 9 新特性 —— 补充篇
查看>>
Asp.Net Core使用Skywalking实现分布式链路追踪
查看>>
浅谈CLR基础知识
查看>>
Xamarin使XRPC实现接口/委托远程调用
查看>>
如何成功搞垮一个团队?
查看>>
.NET开源5年了,这些宝藏你还没get?
查看>>
【日常排雷】 .Net core 生产环境appsetting读取失败
查看>>
从内存中释放Selenium chromedriver.exe
查看>>
如何在 C# 中使用 MSMQ
查看>>
小试elsa
查看>>
巧用 Lazy 解决.NET Core中的循环依赖关系
查看>>
微前端架构在容器平台的应用
查看>>
C# 中的 null 包容运算符 “!” —— 概念、由来、用法和注意事项
查看>>
仓储模式到底是不是反模式?
查看>>
【One by One系列】IdentityServer4(一)OAuth2.0与OpenID Connect 1.0
查看>>
为什么人和人的差距这么大?
查看>>
ML.NET 推荐引擎中一类矩阵因子分解的缺陷
查看>>
微软2020开源回顾:止不住的挨骂,停不下的贡献
查看>>
说说 RabbiMQ 的应答模式
查看>>
OpenTelemetry - 云原生下可观测性的新标准
查看>>