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日

相关文章

  • 帮助避免错误的Javascript陷阱清单

    下面我将为你详细讲解“帮助避免错误的Javascript陷阱清单”的完整攻略。 理解Javascript陷阱及其原因 Javascript 语言中存在很多陷阱,这些陷阱可能会导致意外的行为,或者让你的程序出现错误。因此,我们需要了解它们并且避免它们。 Javascript 陷阱主要来源于三个方面: Javascript 语言本身的设计缺陷; 语言规范中的歧义…

    JavaScript 2023年5月28日
    00
  • 原生JS实现的碰撞检测功能示例

    首先介绍一下什么是碰撞检测。碰撞检测是指在计算机图形学中,用于检测两个物体是否相交的技术。在游戏开发中,碰撞检测是非常重要的技术之一,用于检测游戏角色与游戏场景中的物体是否有接触。 原生JS实现的碰撞检测功能可以通过以下步骤实现: 确定需要检测碰撞的物体 首先,需要确定需要检测碰撞的物体,例如游戏角色、游戏场景中的物体等等。在网页上,也可能需要检测碰撞的元素…

    JavaScript 2023年6月11日
    00
  • JavaScript对象属性设置和屏蔽技巧

    关于JavaScript对象属性设置和屏蔽技巧,我从下面的几个方面详细阐述: 禁止增加属性 我们可以使用 Object.preventExtensions() 方法来禁止对象增加属性。如果我们尝试给一个被禁止增加属性的对象增加属性,就会失败并抛出错误。 const obj = { a: 1, b: 2 }; Object.preventExtensions(…

    JavaScript 2023年5月27日
    00
  • jquery实现表单验证简单实例演示

    下面是关于”jquery实现表单验证简单实例演示”的完整攻略。 什么是jquery表单验证 jquery是一个Javascript库,可以简化JavaScript编写等操作具体内容往往使用jQuery编写的,它可以使JavaScript的大量编码变得轻松愉快。jquery表单验证就是使用jquery库来实现对表单的验证功能,包括对用户输入的内容进行格式、合法…

    JavaScript 2023年6月10日
    00
  • 15个顶级开源JavaScript框架和库

    下面给您详细讲解关于“15个顶级开源JavaScript框架和库”的攻略。 1. 什么是JavaScript框架和库 JavaScript框架和库是用于JavaScript语言的代码集合,它们能够帮助开发者更便捷地构建应用程序。它们的目的是减少开发者的工作量、提高开发效率和代码可读性。 2. 常用的JavaScript框架和库种类 目前常用的JavaScri…

    JavaScript 2023年5月18日
    00
  • js表单事件详细汇总

    关于“js表单事件详细汇总”的完整攻略,我将分为五部分进行讲解。 第一部分:什么是表单事件 表单事件是在用户与表单交互时触发的JavaScript方法。表单事件绑定在表单元素上,例如input、button、form等。 第二部分:表单事件的使用方法 表单事件可以通过addEventListener()或on事件属性来绑定。addEventListener(…

    JavaScript 2023年6月10日
    00
  • Javascript写入txt和读取txt文件示例

    当需要在网页中操作本地文件时,我们可以使用JavaScript中的File API来实现。 写入txt文件示例 下面是一个将输入框中的文本写入txt文件的示例。 HTML部分 <body> <input type="text" id="input"> <button onclick=&qu…

    JavaScript 2023年5月27日
    00
  • javascript学习笔记(十三) js闭包介绍(转)

    “JavaScript学习笔记(十三) JavaScript闭包介绍”这篇文章是一篇介绍JavaScript闭包的文章。下面是这篇文章的完整攻略: JavaScript学习笔记(十三) JavaScript闭包介绍 什么是闭包? 闭包是指函数和函数内部能访问到的变量的总和。也就是说,它指的是一个拥有许多变量和函数的实体。 简单来说,闭包是指在另一个函数内部定…

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