Cookie

255 阅读3分钟

什么是Cookie

cookie 是一个以字符串的形式存储数据的位置,也可以理解为存储数据的一个区域或者说是空间

Cookie特点

  1. 存储大小有限制,一般是4KB左右
  2. 数量有限制,一般是50条左右
  3. 有时效性,也就是有过期时间,一般是会话级别(也就是浏览器关闭就过期了)
  4. 有域名限制,也就是说谁设置的谁才能读取

储存形式

cookie是以字符串的形式存储,在字符串中以key=value 的形式出现,每一个key=value是一条数据,多个数据之间以;分割

// cookie 的形态
a=100; b=200; C=300;

使用方式

  • 读取cookie的内容使用document.cookie

      const cookie = document.cookie
      console.1og(cookie) //就能得到当前cookie的值
    
  • 设置cookie的内容使用document.cookie

      //设置一个时效性为会话级别的cookie
      document.cookie = 'a = 100'
      //设置一个有过期时间的cookie
      document.cookie = 'b=200;expires = Thu, 18 Dec 2043 12:00:00 GMT";'
      //上面这个cookie 数据会在2043年12月18日12点以后过期,过期后会自动消失
    
  • 删除cookie的内容使用document. cookie

      //因为cookie 不能直接删除
      //所以我们只能把某一条cookie的过期时间设置成当前时间之前
      //那么浏览器就会自动删除cookie
      document.cookie = 'b=200;expires=Thu, 18 Dec 2018 12:00:00 GMT";'
    

Cookie封装

/**
* setCookie 用于设置cookie
*@param {STRING} key要设置的 cookie 名称
*@param {STRING} value要设置的 cookie 内容
*@param {NUMBER} expires 过期时间
*/
function setCookie(key, value, expires) {
    const time = new Date()
    time.setTime(time.getTime() - 1000 * 60 * 60 * 8 + expires) //用于设置过期时间
    document.cookie =`${key}=${value };expires=${time};`
}

/**
*getCookie 获取cookie 中的某一个属性
*@param {STRING} key 你要查询的cookie 属性
*@return {STRING} 你要查询的那个cookie 属性的值
*/
function getCookie(key) {
    const cookieArr = document.cookie.split(';') // a=100 ;b=200;c=300
    //[a=100, b=200, c=300 ]
    let value
    cookieArr.forEach(item => { // item=> a=100
        if (item.split('=')[0].trim() === key) {
            value = item. split('=')
        }
    })
    return value
}

/**
*delCookie 删除cookie 中的某一个属性
*@param {STRING} name 你要删除的某一个cookie 属性的名称
*/
function delCookie(name) {
    setCookie(name, 1, -1)
}

注意:cookie使用的是世界标准时间,而我们使用的new Date()则是我们自己的时间,也就是中国所在时区的时间+8时区,我们需要减去这8个小时再设置cookie时间,才是我们正确设置的时间。

与http协议关系

每一个 HTTP 请求都会在请求头中携带 cookie 到服务端
每一个 HTTP 响应都会在响应头中携带 cookie 到客户端
即cookie 不需要手动设置,就会自动在客户端和服务端之间游走的数据,只需要设置 cookie 的内容就可以

async/await

  • 作用:

实现异步编程, 让异步代码用同步的写法实现
=> 同步代码和异步代码

  • 用法:

await 后面一定promise对象封装的异步任务
await代码是在async修饰的函数中

  • 应用:

      //表示当前函数是一个异步执行函数
      async function getList() {
          try{
              console.log('异步函数开始执行111') 
              let res = await ajaxPromise({method:'get', url:'http://10.7.162.150:8089/api/shop/list})
              console.log('异步函数获取到结果222', res )
          } catch(err) {
              console.log(err)
          }
      }
      getList()
      console.log('主程序结束执行>>>>)
    

js-cookie工具函数

js-cookie用法详解

(引用自其他博主,若有不妥请联系删除,栓Q!)