cookie操作与封装

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

JavaScript中cookie的操作与封装

一、了解cookie

  • cookie是一个在客户端的存储空间,在浏览器里。可以将一些信息存储在客户端中。
  • 以字符串的形式存储一些数据
    1. 数据格式必须是 key=value
    2. 多条数据中间用分号;间隔
    3. 每一个cookie都有一个过期事件expires,到达设置时间后关闭浏览器

二、cookie的特点

  • 按照域名存储,你在哪一个域名下存储的内容, 就在哪一个域名下使用,其他域名都用不了,和资源路径地址没有关系。
  • 存储大小有限制,4KB或者50条cookie。
  • 时效性,默认是会话级别的时效性(关闭浏览器就没有了), 可以手动设置, 七天后, 两个小时以后。
  • 请求自动携带
    • 当你的 cookie 空间里面有内容的时候, 只要是当前域名下的任意一个请求, 都会自动携带 cookie 放在请求头里面,cookie 里面有多少自动携带多少,如果 cookie 空间中没有内容, 就不会携带了。
  • 前后端操作
    • 前端可以通过 js 操作 cookie 空间进行增删改查。
    • 后端也可以通过任何后端语言进行 cookie 空间的增删改查。

三、cookie的操作

  • 在chrome浏览器中,cookie的设置需要打开服务器设置,我用的时phpstudy服务器,本地路径打开无法设置cookie。
  • 在这里插入图片描述
  • 在这里插入图片描述
设置cookie
  • document.cookie = 'key=value'
  • 一次只能设置一条cookie,如果想设置多条cookie,需要多次执行代码
  • 想要更改某条cookie值,就设置相同的key值,不一样的value
  • 当你不进行额外设置的时候, 你设置的 cookie 默认就是会话级别(关闭浏览器就没有了)
  • 想要给cookie设置一个过期时间
    • 语法:document.cookie = 'a=100;expires=时间对象'
    • cookie使用的是世界标准时间,而我们使用的new Date()则是我们自己的时间,也就是中国所在时区的时间,+8时区
      我们需要减去这8个小时在设置cookie时间,才是我们正确设置的时间。
  1. 设置两条 cookie
// 设置两条 cookie
     document.cookie = 'a=100'
   	 document.cookie = 'b=200'

在这里插入图片描述
2. 设置15秒后过期的cookie

  // 设置一个有过期时间的 cookie
    document.cookie = 'a=100'


    // new Date() 就是当前时间的时间对象
    document.cookie = 'b=200;expires=' + new Date()


    // 一个合适的时间
    var time = new Date() // 当前时间
    // time.getTime() // 时间戳
    // time.getTime() - 1000 * 60 * 60 * 8 // 八个小时以前的时间戳

    // 把这个时间戳再从新设置会 time 时间对象上
    time.setTime(time.getTime() - 1000 * 60 * 60 * 8 + 1000 * 15) // 当前时间的 15 秒以后
    // 此时 time 就是当前时间 8 个小时以前的时间对象
    // 设置 cookie 的时候就使用这个 八个小时 以前的 时间对象
    // console.log(time)

    // time 就是 15 秒以后的时间
    document.cookie = 'c=300;expires=' + time

    // 语法: document.cookie = 'a=100;expires=时间对象'
删除cookie
  • 把cookie的过期时间设置成当前时间之前,也就是不存在,就意味着删除
<!-- 点击之后删除cookie -->
<button>删除 cookie</button>

  <script>
    document.cookie = 'a=100' // 默认会话级别  关闭浏览器才会消失

    var but = document.querySelector('button')

    btn.onclick = function () {
      var time = new Date()
      //先减去+8时区的时间  得到cookie使用的时间   在设置一秒前让cookie消失
      time.setTime(time.getTime() - 1000 * 60 * 60 * 8 - 1000)
      document.cookie = 'a=100;expires=' + time 
    }

    /*
      打开页面的时候设置一个会话级别的 cookie
      当我点击 按钮的时候就删除这个 cookie
    */
  </script>
修改cookie
  • 修改cookie就是再设置一条key值相同的cookie
 <button>修改 cookie</button>

  <script>
    /*
      修改 cookie
        + 因为 cookie 的存储不允许同名
        + 所以你第二次设置同一条 cookie 的时候就是修改
    */

    document.cookie = 'a=100'

    var btn = document.querySelector('button')
    btn.onclick = function () {
      // 再次设置一遍 a 这个 cookie 就是修改
      document.cookie = 'a=200'
    }

    /*
      打开页面的时候设置了一个 a = 100 的 cookie
      当我点击按钮的时候从西你设置 cookie 的值变为    a = 200
    */
  </script>
获得cookie
//直接打印
console.log(document.cookie)

在这里插入图片描述

  • 这里的cookie值是一个字符串,需要注意的是,每一条cookie后面都有;加上一个空格

四、cookie操作的简单封装

设置cookie
function setCookie(key, value, expires) {
  // key 就是你要设置的 cookie 的属性名
  // value 就是你要设置的 cookie 的属性值
  // expires 就是你要设置的 cookie 的过期时间


  // 先判断以下你有没有传递 expires   也就是是否设置过期时间
  if (expires) {
	//如果设置 过期时间
    var time = new Date()
    time.setTime(time.getTime() - 1000 * 60 * 60 * 8 + 1000 * expires)

    // 设置上
    document.cookie = key + '=' + value + ';expires=' + time
  } else {
    // 你没有传递
    // 直接设置就可以了
    document.cookie = key + '=' + value
  }
}
获取某一条cookie
function getCookie(key) {
  // key 就是你要获取的那一条 cookie 的属性名

  // 1. 准备一个 str
  var str = ''

  // 2. 去到 document.cookie 里面找到对应的 key 的 value 赋值给 str
  // console.log(document.cookie) // 不好直接操作
  // 使用 split 方法切割以下
  var tmp = document.cookie.split('; ')
  // 循环遍历 tmp
  tmp.forEach(function (item) {
    // item 就是每一条 cookie
    // console.log(item)
    // item = 前面的就是每一条 cookie 的 key
    // item = 后面的就是每一条 cookie 的 value
    // 使用 split 方法把 item 切割
    var t = item.split('=')
    // console.log(t)
    // t[0] 就是每一条 cookie 的 key
    // t[1] 就是每一条 cookie 的 value
    // 判断
    if (t[0] === key) {
      str = t[1]
    }
  })

  // 3. 把 str 返回
  return str
}

更改与删除cookie值,就是再设置一遍cookie或者让cookie的时间为负数。
也可以更近一步的再对更改,删除cookie操作进行封装。这里就不作赘述
js封装cookie相关操作函数 函数封装 //cookie相关操作 var cookie={ set:function(name, value, day) { let oDate = new Date() oDate.setDate(oDate.getDate() + (day || 30)) document.cookie = name + '=' + value + ';expires=' + oDate + "; path=/;" }, get:function(name) { let 阅读详情

相关推荐

jscookie操作封装

jscookie操作封装 包含jquery对cookie操作和纯javascriptcookie操作

cookie的用法封装

cookie的概念: 指某些网站为了辨别用户身份,进行session(会话)跟踪而存储在用户本地终端上的数据(通常经过加密)。以文本形式存在。 会话跟踪技术cookie: 跟踪每一次的连接,记录连接产生的信息,下次连接,跟着一起发送过去 特点: 1.只能存字符,文本 2.不允许跨域(谁存的,谁用) 3.时效性,默认会话级,关闭浏览器,可以删除(在一定时间内有效,即时效性) 4.数量(50左右)和大...

qq_44732010的博客 871

封装Cookie

1.Cookie是浏览器存储数据的一种方式,存储在用户本地,而不是存储在服务器上,是本地存储,一般会自动随着浏览器每次请求发送到服务器端,在请求Request Headers中会有一个Cookie的字段2.作用场景:1.网站的中英文切换2.利用Cookie跟踪统计用户访问该网站的习惯,可以作为了解用户行为的一种工具,以便给用户提供更人性化的使用体验3.设置Cookie不能一起设置,只能单独设置4.读取Cookie读取的是一个由名值对构成的字符串,每个名值对之间由“; ”(一个分号和跟一个空格)隔开5。Coo

m0_60997531的博客 1105

js操作cookie的方法封装

【代码】js操作cookie的方法封装。获取页面的cookie

beiTiao_lys的博客 487

cookie的认识使用以及封装

Cookie 用于存储 web 页面的用户信息。Cookie 是一些数据, 存储于你电脑上的文本文件中。当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。当用户访问 web 页面时,他的名字可以记录在 cookie 中。在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录。浏览器中百度所存储的cookie信息。

weixin_52544526的博客 642

js操作cookie封装

参考:https://developer.mozilla.org/zh-CN/docs/Web/API/Document/cookie

个人学习和记录 451

cookie操作封装

//cookie操作封装 class CustomCookie{ static private $_instance = null; private $expire = 0; private $path = ''; private $domain = ''; private $secure = false; private $httponly =...

alashan007的博客 264

教你封装cookie操作,简便你的操作

封装之前,最好自己去试试cookie常见操作有哪些,这里我就不去尝试了。 Typescript版本 getCookie 封装这个之前我们先来看一下cookie得结构: "uuid_tt_dd=10_17080957850-1567180715184-786880; dc_session_id=10_1567180715184.873382; Hm_ct_6bcd52f51e9b3dce32bec...

qq_40566547的博客 644

JavaScript封装cookie操作

定义cookie()函数来封装cookie的所有操作 描述: cookie()函数即可以写入指定的cookie信息,删除指定的cookie信息,同时也能够读取指定名称的cookie值,另外还可以指定cookie信息的有效期、有效路径、作用域和安全性选项设置 指定一个参数表示读取指定名称的cookie值 指定两个参数,则表示写入cookie信息,第一个参数表示名称,第二个参数表示值 第三个参数传递选项信息,以字典形式存储在对象中进行传递。包括有效期、有效路径、有效域和是否加密数据传输 function c

weixin_41897680的博客 701

封装cookie常用操作

封装cookie常用操作: cookieTool.js //把写入cookie信息的实现代码进行封装 /* name:cookie名称 value:cookie值 expires:有效天数 path:有效路径 domain:域 secure:安全性设置 name、value、 path、domain为字符串类型 expires为数值 secure:布尔值,表示是否加密传输cookie */ fu...

qq_34550459的博客 439

使用JavaScriptCookie 操作封装

通过本篇,您能了解到: 匿名函数 闭包的产生 JavaScript实现private 以及 public 访问权限 document.cookie操作 Javascript 没有 private , public 访问权限设置的关键字,但是可以通过一定的技巧来模拟出相同...

andy9242112的博客 199

jQueryCookie:浏览器Cookie操作的现代化封装终极指南

在Web开发领域,jQuery作为最流行的JavaScript库之一,为开发者提供了简洁高效的DOM操作和事件处理能力。对于浏览器Cookie操作,jQuery虽然不直接提供专门的Cookie处理方法,但其强大的数据管理机制为Cookie的现代化封装奠定了坚实基础。本文将为您详细介绍如何利用jQuery实现浏览器Cookie操作的现代化封装,让您的Web开发工作更加轻松高效!🎯 ## 为什么需

gitblog_01428的博客 638

cookie操作封装

//设置cookie function setCookie (key, value, t) { var oDate = new Date(); oDate.setDate(oDate.getDate() + t); document.cookie = key + '=' + value + '; expires=' + oDate.toGMTString() }; //获取co

甜妹的博客 1512

cookie和子cookie操作封装

1 /** 2 * 封装cookie操作 3 * @type {Object} 4 */ 5 var CookieUtil = { 6 /** 7 * 根据cookie的名字获取相应的值 8 * @param name cookie名字 9 * @return {*} 10 ...

weixin_30655219的博客 68

封装一个cookie操作

封装一个cookie操作

m0_59690437的博客 135

使用JAVA类对Cookie的简单操作进行封装

使用JAVA类对Cookie的简单操作进行封装简介相关知识方法表参数表 简介 在使用JSP写web项目时,总是会和Cookie打交道,所以就封装了一个Cookie的工具类,方便每次使用,只封装了最基础的几个操作,如果有错误还请大家帮忙指正。 相关知识 Cookie详解这个写的不错 方法表 方法名 作用 addCookie(HttpServletResponse response, String key, String value, int age) 添加Cookie addCookie(

买烤麸烤饼儿的博客 367

封装ajax和cookie操作 进行简单交互

promise封装ajax //promise 封装ajax function ajax(data,type="GET"){ var url="http://127.0.0.1:4010"; var str=""; for(var prop in data){ str+=prop+"="+data[prop]+"&"; // str

shadowfall的博客 133

简单封装cookie操作

1 1 //设置cookie 2 2 function setCookie(name, value, day) { 3 3 var oDate = new Date(); 4 4 oDate.setDate(oDate.getDate() + day); 5 5 document.cookie = name + '=' + value + ';expire...

Chandler1986的博客 133
上一篇: JS的几种设计模式
下一篇: jQuery简单小案例
前端魔法师
博客等级 码龄7年 188粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值