JS实现Cookie读、写、删除操作工具类示例

下面就是详细讲解“JS实现Cookie读、写、删除操作工具类示例”的完整攻略。

什么是Cookie?

先来简单介绍一下什么是Cookie。Cookie是一种在客户端(浏览器)存储数据的技术,用于存储各种信息,如登录状态、用户个性化设置、购物车商品等。Cookie的使用可以在服务器端通过响应头设置Cookie,在客户端通过document.cookie读取和修改Cookie。

实现Cookie读、写、删除操作

在实际开发中,我们可能需要对Cookie进行读、写、删除等操作。下面我们就来介绍如何通过JS实现Cookie读、写、删除操作。

1. Cookie的写入

要将数据写入Cookie,可以通过设置document.cookie实现。以下是一个示例代码:

function setCookie(cname,cvalue,exhours) {
    var d = new Date();
    d.setTime(d.getTime() + (exhours*60*60*1000));
    var expires = "expires="+ d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

这段代码定义了一个名为setCookie的函数,函数接收三个参数:cookie的名称、cookie的值和cookie的过期时间(单位:小时)。在函数内部,通过设置 expires 变量,指定了 cookie 的过期时间,并调用 document.cookie 设置 cookie 的名称和值,以及 path 属性设置 cookie 的路径。

2. Cookie的读取

要从Cookie中读取数据,可以通过读取document.cookie实现。以下是一个示例代码:

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(";");
    for(var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

这段代码定义了一个名为getCookie的函数,函数接收一个参数:cookie的名称。在函数内部,通过调用 document.cookie 获取所有 cookie,并通过 split 函数将所有 cookie 分割成单个 cookie。之后再循环遍历所有 cookie,如果找到指定的 cookie 则返回其值。如果没有找到则返回空字符串。

3. Cookie的删除

要从Cookie中删除一个Cookie,可以通过设置它的过期时间为过去的时间来实现。以下是一个示例代码:

function deleteCookie(cname) {
    document.cookie = cname + "=; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/;";
}

这段代码定义了一个名为deleteCookie的函数,函数接收一个参数:cookie的名称。在函数内部,通过设置 expires 属性为一个过去的时间,将该 cookie 的过期时间设置为过去的时间,从而达到删除该 cookie 的效果。需要注意的是,为了删除 cookie,path 属性要设置为根路径。

示例说明

下面是两个示例说明,帮助你更好的理解以上实现Cookie读、写、删除操作的代码:

示例一:

在这个示例中,我们实现了一个网站的主题设置功能,在切换主题时使用 Cookie 存储用户所选主题。以下是示例代码:

//获取cookie的值
function getTheme() {
    var theme = getCookie("theme");
    if(theme != "") {
        //应用主题
    } else {
        //使用默认主题
    }
}

//设置cookie的值
function setTheme(theme) {
    setCookie("theme", theme, 24);
    //应用主题
}

//删除cookie的值
function clearTheme() {
    deleteCookie("theme");
    //应用默认主题
}

//切换主题
function switchTheme(theme) {
    setTheme(theme);
}

在这个示例中,getTheme函数从Cookie中读取用户设置的主题,如果主题存在则应用该主题,否则使用默认主题。setTheme函数将用户所选主题存储到Cookie中,过期时间为24小时。clearTheme函数删除Cookie中的主题,应用默认主题。switchTheme函数是切换主题的入口函数,该函数接收用户所选主题作为参数。

示例二:

在这个示例中,我们实现了使用Cookie来存储购物车数据。以下是示例代码:

//添加商品到购物车
function addToCart(product) {
    var cart = getCookie("cart");
    if(cart != "") {
        var cartArray = JSON.parse(cart);
    } else {
        var cartArray = [];
    }
    cartArray.push(product);
    var cartJSON = JSON.stringify(cartArray);
    setCookie("cart", cartJSON, 24);
}

//从购物车中移除商品
function removeFromCart(product) {
    var cart = getCookie("cart");
    if(cart != "") {
        var cartArray = JSON.parse(cart);
        var index = cartArray.indexOf(product);
        if(index != -1) {
            cartArray.splice(index, 1);
            var cartJSON = JSON.stringify(cartArray);
            setCookie("cart", cartJSON, 24);
        }
    }
}

//显示购物车列表
function showCart() {
    var cart = getCookie("cart");
    if(cart != "") {
        var cartArray = JSON.parse(cart);
        //显示购物车列表
    } else {
        //显示购物车为空
    }
}

在这个示例中,addToCart函数将商品添加到购物车中,首先从 Cookie 中读取已有的购物车数据,如果购物车不为空,则解析 JSON 格式的购物车数据为数组,如果购物车为空,则定义一个空数组。之后将商品添加到购物车中,再将购物车数组转换为 JSON 字符串,最后将购物车数据存储到 Cookie 中。removeFromCart函数从购物车中移除商品,先从 Cookie 中读取购物车数据,并将其解析为购物车数组,然后找到要移除的商品在数组中的索引,如果存在则将其从购物车数组中移除,最后将购物车数据重新存储到 Cookie 中。showCart函数从 Cookie 中读取购物车数据并解析为数组,然后将购物车数组数据渲染到页面上,以供用户查看。

总结

以上就是关于如何通过JS实现Cookie读、写、删除操作的完整攻略以及两个示例的说明。在实际开发中需要灵活运用 Cookie 技术,根据具体业务场景的要求进行读、写、删除等 Cookie 操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现Cookie读、写、删除操作工具类示例 - Python技术站

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

相关文章

  • Javascript字符串拼接小技巧(推荐)

    我将为您提供一份详细的Javascript字符串拼接小技巧攻略,包含以下内容: 标准的字符串拼接方法 在JavaScript中,我们可以使用加号+来拼接字符串。例如: var str1 = "hello"; var str2 = "world"; var str3 = str1 + " " + st…

    JavaScript 2023年5月28日
    00
  • JavaScript设计模式之模板方法模式原理与用法示例

    JavaScript设计模式之模板方法模式 简介 模板方法模式(Template Method Design Pattern)又称为模板模式,是一种行为型设计模式。在该模式中,定义一个操作中的算法骨架,而将一些步骤延迟到子类中实现。也就是说,在父类中定义好算法的骨架,具体实现留给子类去实现,这样就可以保证算法的整体流程在父类中控制,所有子类遵循相同的规则去按…

    JavaScript 2023年6月10日
    00
  • 利用JavaScript实现绘制2023新年烟花的示例代码

    下面是在网页中利用JavaScript实现绘制2023新年烟花的完整攻略。 准备工作 在开始编写代码之前,我们需要准备以下工具和环境: 一个文本编辑器,推荐使用 Visual Studio Code 一个浏览器,推荐使用 Chrome 一些基础的 JavaScript 知识,例如函数、变量、事件等 编写HTML结构 首先,我们需要在HTML文件中添加一个ca…

    JavaScript 2023年6月11日
    00
  • AutoJs4.4.1免费版快速接通vscode调试脚本的操作方法

    下面是“AutoJs4.4.1免费版快速接通vscode调试脚本的操作方法”的完整攻略: 操作方法 安装AutoJs4.4.1免费版 首先需要安装AutoJs4.4.1免费版,可以在官网或者GitHub上下载相应的安装包。安装完成后,打开AutoJs应用。 安装AutoJs插件 在VSCode中,搜索安装“AutoJs插件”,下载安装后重新启动VSCode。…

    JavaScript 2023年6月11日
    00
  • three.js实现3D模型展示的示例代码

    实现3D模型展示的示例代码通常需要使用WebGL渲染,而Three.js作为一款JavaScript库,提供了快速构建3D场景的功能,能够帮助我们轻松实现3D模型的展示。下面,我将为您提供“three.js实现3D模型展示的示例代码”的完整攻略。 步骤一:导入Three.js库 在实现3D模型展示之前,首先需要将Three.js库下载并导入到项目中。我们可以…

    JavaScript 2023年6月10日
    00
  • 前端设计模式——享元模式

    享元模式(Flyweight Pattern):是一种用于优化对象创建和管理的设计模式。它旨在减少内存消耗和提高性能,通过共享具有相同状态的对象来实现这一目标。 具体来说,享元模式涉及两个主要的对象:享元工厂和具有共享状态的享元对象。享元工厂负责创建和管理共享对象,以确保每个对象只被创建一次。享元对象则包含需要共享的状态信息,并提供接口以访问该状态。 通过使…

    JavaScript 2023年4月18日
    00
  • 获取表单控件原始(初始)值的方法

    获取表单控件原始值的方法,通常是用于表单的重置操作或是表单提交前的数据检查。以下是一些常见的方法: 1. 通过JavaScript获取表单元素的value属性 JavaScript提供了访问文档元素的属性的方法,包括表单元素的value属性。通过获取表单元素的value属性,可以得到该元素的初始值。 示例1: <form> <input t…

    JavaScript 2023年6月10日
    00
  • javascript 异步的innerHTML使用分析

    JavaScript 异步的 innerHTML 使用分析 在网站开发过程中,使用内部 HTML 设置元素内容是很常见的。通过使用 innerHTML 属性,我们可以将 HTML 代码动态插入到网页中。然而,在某些情况下,JavaScript 中这种操作可能会异步执行,这可能会在使用过程中引起问题。在这篇文章中,我们将讨论 innerHTML 方法的异步执行…

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