javascript cookie操作类的实现代码小结附使用方法

JavaScript Cookie 操作类的实现代码小结

什么是 Cookie

Cookie 是一种在浏览器中用于存储信息的小型文本文件,通常用来存储用户的偏好设置、购物车内容等信息。Cookie 存储在用户的计算机上,由服务器生成并发送给浏览器。

JavaScript Cookie 操作类实现

以下代码演示了如何通过 JavaScript 操作 Cookie,具体实现了以下功能:

  • 设置 Cookie
  • 获取 Cookie
  • 删除 Cookie
class Cookie {
  /**
   * 设置 cookie
   * @param {String} name cookie 名称
   * @param {String} value cookie 值
   * @param {Number} expires 失效时间(天数)
   * @param {String} path 请求路径
   */
  static set(name, value, expires = 0, path = '/') {
    let date = new Date();
    let time = date.getTime() + expires * 24 * 3600 * 1000;
    date.setTime(time);
    document.cookie = `${name}=${value};expires=` + date.toGMTString() + `;path=${path}`;
  }

  /**
   * 获取 cookie
   * @param {String} name cookie 名称
   * @returns {String} cookie 值
   */
  static get(name) {
    let cookieArr = document.cookie.split(';');
    for (let i = 0; i < cookieArr.length; i++) {
      let cookie = cookieArr[i].trim();
      let index = cookie.indexOf(name + '=');
      if (index === 0) {
        return cookie.substring(name.length + 1, cookie.length);
      }
    }
    return '';
  }

  /**
   * 删除 cookie
   * @param {String} name cookie 名称
   * @param {String} path 请求路径
   */
  static delete(name, path = '/') {
    let date = new Date();
    date.setTime(-1000);
    document.cookie = `${name}=;expires=` + date.toGMTString() + `;path=${path}`;
  }
}

如何使用

// 设置 cookie
Cookie.set('username', 'fizzy', 7, '/');

// 获取 cookie
let username = Cookie.get('username');

// 删除 cookie
Cookie.delete('username', '/');

在上述示例中,我们使用了 Cookie 类来设置、获取和删除 cookie。其中,set 方法用于设置 cookie,在 namevalue 参数中分别传入 cookie 名称和值,在 expires 参数中指定 cookie 的失效时间(以天为单位),在 path 参数中指定请求路径。

get 方法用于获取 cookie,需要传入 cookie 的名称,返回 cookie 的值。

delete 方法用于删除 cookie,需要传入 cookie 的名称和请求路径。

除了上述示例,Cookie 类可以根据具体情况进行更多的使用。例如,在用户登录时可以将用户信息存储在 cookie 中,在用户退出时删除 cookie,以实现记住登录状态的功能。

示例说明

以下是两个示例,展示了如何使用 JavaScript Cookie 操作类实现具体功能。

示例一:记住登录状态

在用户登录时,将用户信息存储在 cookie 中,并设置失效时间。在用户访问需要登录才能访问的页面时,先获取 cookie 中的登录信息,如果存在则表示用户已经登录,否则需要跳转到登录页面。

// 用户登录
function login(username, password) {
  if (checkLogin(username, password)) {
    // 验证成功,存储用户信息到 cookie
    Cookie.set('username', username, 7, '/');
    return true;
  } else {
    return false;
  }
}

// 判断是否已登录
function checkLogin() {
  let username = Cookie.get('username');
  return username !== '';
}

// 在需要登录才能访问的页面中调用
if (checkLogin()) {
  // 用户已登录,可以访问该页面
} else {
  // 用户未登录,跳转到登录页
  window.location.href = '/login.html';
}

在上述示例中,我们使用 Cookie 存储了用户登录信息(用户名),并设置了失效时间。在需要登录才能访问的页面中,通过判断 cookie 中是否存在登录信息来决定是否跳转到登录页面。

示例二:记住购物车内容

当用户将商品添加到购物车时,将商品信息存储在 cookie 中,并在需要显示购物车信息的页面中获取 cookie 中的购物车内容,然后将其展示给用户。

// 添加商品到购物车
function addToCart(item) {
  let cart = JSON.parse(Cookie.get('cart'));
  if (cart === '') {
    cart = [];
  }
  cart.push(item);
  Cookie.set('cart', JSON.stringify(cart), 7, '/');
}

// 显示购物车内容
function showCart() {
  let cart = JSON.parse(Cookie.get('cart'));
  // 展示购物车内容
}

在上述示例中,我们将购物车内容存储在一个数组中,并使用 JSON.stringify 将其转换为 JSON 字符串后,通过 Cookie 存储。在需要显示购物车内容的页面中,通过 JSON.parse 将 JSON 字符串转换为数组,然后将其展示给用户。

总结

通过 JavaScript 操作 Cookie,可以实现很多实用的功能,如记住登录状态、记住购物车内容等。开发人员可以根据具体情况使用 Cookie 类实现相关功能。除了 Cookie,还有 LocalStorage、SessionStorage 等存储技术也可以用于浏览器端数据存储。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript cookie操作类的实现代码小结附使用方法 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 定时器(setTimeout/setInterval)调用带参函数失效解决方法

    当我们在使用JavaScript中的定时器(setTimeout/setInterval)调用带参的函数时,有时候就会遇到传递参数失败或丢失的问题。本篇攻略将会详细介绍这个问题的解决方法。 问题描述 在使用定时器调用带参函数时,经常会遇到该函数中的参数传递失败的情况。比如,下面的代码: setTimeout(myFunc(param1), 1000); 在1…

    JavaScript 2023年6月11日
    00
  • JavaScript初级教程(第二课)第1/7页

    第一步:Markdown格式化 在发布文章时,请使用Markdown格式化文本以提高可读性和美观性。以下是一份标准的Markdown格式: JavaScript初级教程(第二课) 第1/7页 目录 课程简介 数据类型 变量和常量 运算符 控制流 函数和方法 常见问题解答 课程简介 JavaScript是一种用于网页开发的编程语言。在本课程中,您将学习Java…

    JavaScript 2023年5月18日
    00
  • 零基础轻松学JavaScript闭包

    零基础轻松学JavaScript闭包 什么是闭包 闭包的定义 闭包是指那些能够访问自由变量的函数。自由变量是指在函数中使用,但既不是函数参数,也不是函数的局部变量的变量。 闭包 = 函数 + 函数能够访问的自由变量 闭包的作用 闭包主要有以下两个作用: 延长外部作用域中变量的声明周期。当一个函数返回了一个内部函数后,内部函数会继续保持对外部函数的作用域的引用…

    JavaScript 2023年6月10日
    00
  • javascript正则表达式和字符串RegExp and String(一)

    下面是关于“javascript正则表达式和字符串RegExp and String(一)”的完整攻略: 简介 JavaScript 正则表达式是匹配模式,它们可用于搜索字符串中的特定模式,从而帮助我们实现强大的文本匹配和处理功能。RegExp 和 String 对象是 JavaScript 中正则表达式常用的操作对象。String 对象提供了一些常用的方法…

    JavaScript 2023年5月28日
    00
  • 微信小程序实现消息框弹出动画

    关于微信小程序实现消息框弹出动画,我可以提供以下攻略: 1. 熟悉小程序动画API和样式属性 在开始实现消息框弹出动画前,我们需要先熟悉小程序提供的动画API和常见样式属性。小程序中的动画API主要包括wx.createAnimation和Animation对象的一些方法,如step、export等。而常见的样式属性包括position、z-index、tr…

    JavaScript 2023年6月11日
    00
  • js中split函数的使用方法说明

    下面是“js中split函数的使用方法说明”的完整攻略。 什么是split函数 split函数是JavaScript中的一个字符串方法,主要用于将一个字符串根据指定的分隔符,切割成一个字符串数组。 其语法如下: string.split(separator, limit); 其中,separator代表指定的分隔符,可以是一个字符串或一个正则表达式;limi…

    JavaScript 2023年5月27日
    00
  • jQuery使用ajax跨域请求获取数据

    下面详细讲解“jQuery使用ajax跨域请求获取数据”的完整攻略。 1. 什么是跨域请求? 跨域请求指的是向一个不同域名(或者协议、端口)的服务器发起请求,这种请求是不被允许的。比如我们的web页面在访问http://www.example.com的时候,去请求http://www.baidu.com就属于跨域请求。 2. jQuery ajax 跨域请求…

    JavaScript 2023年6月11日
    00
  • 前端面试必会网络跨域问题解决方法

    下面我将详细讲解前端面试必会网络跨域问题解决方法的完整攻略。 说明 在开发中,如果需要从当前页面向其它域名的页面发送请求,那么可能会出现跨域的问题。跨域问题是前端开发中比较常见的问题之一。本篇文章将从以下几个方面详细讲解如何解决跨域问题: 什么是跨域问题 跨域的解决方法 JSONP跨域 CORS跨域 什么是跨域问题 跨域问题是指浏览器的同源策略限制了向不同源…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部