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日

相关文章

  • JS获取字符对应的ASCII码实例

    首先我们来说明一下什么是ASCII码。ASCII码是一种常见的字符编码方案,使用7位二进制数来表示128个字符(包括字母、数字、符号等)。 接下来,我们将介绍如何使用JavaScript获取字符对应的ASCII码。 1. 使用charCodeAt()方法 charCodeAt()方法返回指定位置字符的Unicode编码,我们可以使用charCodeAt()方…

    JavaScript 2023年5月28日
    00
  • js中new一个对象的过程

    当我们在JavaScript中使用new关键字来创建一个对象时,实际上会发生以下过程: 创建一个新对象。这个新对象继承了它的构造函数的prototype属性。 function Person(name) { this.name = name; } let person = new Person(‘小明’); 在这个例子中,创建了一个名为Person的构造函数…

    JavaScript 2023年5月27日
    00
  • JavaScript 正则应用详解【模式、欲查、反向引用等】

    JavaScript 正则应用详解【模式、欲查、反向引用等】攻略 正则表达式是用来描述或者匹配一些字符串模式的工具。JavaScript 支持正则表达式,可以使用正则表达式进行字符串的匹配、查找、替换、拆分等操作。本文将详细介绍 JavaScript 正则表达式的常用应用。 一、正则表达式概述 正则表达式是一种字符模式,用于匹配或识别一些特定的字符串模式。正…

    JavaScript 2023年5月27日
    00
  • JS合并数组的几种方法及优劣比较

    JS合并数组的几种方法及优劣比较 在JavaScript编程中,经常需要将两个或多个数组合并成一个新数组。下面将会介绍几种常用的合并数组的方法,并对它们的优劣进行比较。 方法一:concat() 方法 concat() 方法是 JavaScript 中最基础的数组合并方法。它可以将两个或多个数组合并成一个新数组。 let arr1 = [1, 2, 3]; …

    JavaScript 2023年5月27日
    00
  • JavaScript正则表达式中的ignoreCase属性使用详解

    JavaScript正则表达式中的ignoreCase属性使用详解 在JavaScript正则表达式中,常常有需要对大小写不敏感的情况,这时就需要用到ignoreCase属性。本文将详细讲解ignoreCase属性的使用方法。 什么是ignoreCase属性 ignoreCase属性是正则表达式对象的一个属性,表示在匹配过程中是否忽略大小写。当为true时,…

    JavaScript 2023年6月10日
    00
  • js实现iGoogleDivDrag模块拖动层拖动特效的方法

    JS实现iGoogleDivDrag模块拖动层拖动特效是一项基于鼠标拖动功能的JavaScript特效。下面是实现该特效的攻略: 1. 添加HTML结构 首先,在HTML中添加需要拖拽的div元素,同时为目标div元素指定ID属性,例如: <div id="dragElement">需要拖拽的内容区域</div> …

    JavaScript 2023年6月11日
    00
  • Javascript处理DOM元素事件实现代码

    当我们需要在网页中添加交互功能时,JavaScript 处理 DOM 元素事件是必须掌握的技能。在接下来的回答中,我将介绍完整的攻略,帮助你学会如何使用 JavaScript 处理 DOM 元素事件。 什么是事件? 在编写网页时,事件是指用户操作网页时所触发的动作。例如,当用户点击一个按钮,就会触发 click 事件;当用户将光标移动到一个元素上时,会触发 …

    JavaScript 2023年6月11日
    00
  • Javascript 编码约定(编码规范)

    为了让Javascript代码具备可读性以及易于维护,编写Javascript代码时需要遵循一定的编码约定,也被称为编码规范。接下来,本文将介绍Javascript编码规范的完整攻略。 确定代码的缩进方式 在编写Javascript代码时,我们需要使用缩进来表示不同代码块之间的层次结构,一般约定每个缩进级别使用2或4个空格。其中空格的数量应该保持统一,不要混…

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