浏览器百科:网页存储篇-Cookie应用实例(三)

news2024/9/21 22:56:53

1.引言

在前面的章节中,我们详细介绍了 Cookie 的基本概念、属性以及如何在 Chrome 浏览器中管理和调试 Cookie。理解这些理论知识之后,下一步是将其应用于实际开发中。在本篇文章中,我们将通过具体的代码示例,演示如何在网页中设置、读取和删除 Cookie,帮助开发者更好地掌握 Cookie 的实际使用方法。通过这些实战演示,您将能够在自己的项目中灵活运用 Cookie,为用户提供更个性化和连续性的浏览体验。

2.Cookie应用实例

首先,我们使用 Vue 3 和 TypeScript 实现了一个简单的网页应用,用于设置和清除浏览器中的 Cookie。其功能概括如下:

  • 用户在表单中输入 Cookie 的名称、值以及有效天数。
  • 点击“Set Cookie”按钮后,计算 Cookie 的过期时间并设置Cookie,成功后会弹出提示框通知用户 Cookie 已成功设置。
  • 点击“Clear Cookie”按钮后,脚本会遍历并删除所有当前域的 Cookie,成功后会弹出提示框通知用户所有 Cookie 已清除。
  • 点击“Clear Cookie by Name ”按钮后,删除指定名称的 Cookie,并显示成功消息。

2.1 主要代码

<script setup lang="ts">
import { ref } from 'vue'

const name = ref('')
const value = ref('')
const days = ref(1)
const setCookie = () => {
  const d = new Date()
  d.setTime(d.getTime() + (days.value * 24 * 60 * 60 * 1000))
  const expires = `expires=${d.toUTCString()}`
  document.cookie = `${name.value}=${value.value};${expires};path=/`
  alert('Cookie set successfully!')
}

const clearAllCookie = () =>{
  const cookies = document.cookie.split(";")
  for (let i = 0; i < cookies.length; i++) {
    const cookie = cookies[i]
    const eqPos = cookie.indexOf("=")
    const name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie
    document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/"
  }
  alert('All cookies cleared successfully!')
}

const clearCookieByName = () => {
  document.cookie = `${name.value}=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/`
  alert(`Cookie with name ${name.value} cleared successfully!`)
}
</script>
<template>
  <div>
    <h1>Cookie-test</h1>
    <form @submit.prevent="setCookie">
    <div>
      <label for="name">Name:</label>
      <input type="text" id="name" v-model="name" required />
    </div>
    <div>
      <label for="value">Value:</label>
      <input type="text" id="value" v-model="value" required />
    </div>

    <div>
        <label for="days">Days to Expire:</label>
        <input type="number" id="days" v-model="days" required />
      </div>
      <div class="button">
        <button type="submit">Set Cookie</button>
        <button type="button" @click="clearAllCookie">Clear Cookie</button>
        <button type="button" @click="clearCookieByName">Clear Cookie by Name</button>
      </div>
     
  </form>
  </div>
  
</template>
<style scoped>
label {
  display: inline-block;
  width: 150px;
}

input {
  margin-bottom: 10px;
  width: 300px;
  height: 35px;
  border-radius: 5px;
}

button {
  margin-top: 10px;
  background-color: rgb(66, 164, 255);
  color: #ffffff;
  border: #ffffff;
  margin-left: 25px;
}

button:hover {
  background-color: rgb(131, 186, 245);
}
</style>

执行命令来运行程序:

npm run dev

2.2 访问http://localhost:5173/

3.进行测试

3.1 设置多个Cookie

💡

Cookie的Name唯一

打开Cookie窗格进行查看是否设置成功:

3.2 清除指定Cookie

此时,打开Cookie窗格进行查看是否删除成功:

3.3 清除所有Cookie

此时,打开Cookie窗格进行查看是否删除成功:

4.总结

通过上述实例,我们展示了如何使用 Vue 3 和 TypeScript 在网页中设置、读取和删除 Cookie。理解这些操作后,您可以在自己的项目中灵活运用 Cookie,为用户提供更加个性化的服务。下一篇文章将介绍网页存储的另一种方式——localStorage 的基本概念和应用实例。敬请期待《浏览器百科:网页存储篇 - localStorage介绍(四)》。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2100462.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

并发集合:ConcurrentHashMap解析

1、ConcurrentHashMap 介绍 1.1、ConcurrentHashMap 概述 ConcurrentHashMap 是线程安全的HashMap&#xff0c;但最早的线程安全的HashMap 是 HashTable &#xff0c;HashTable 现在已经弃用&#xff0c;因为它是使用synchronized 来保证线程安全&#xff0c;性能比较低&#…

无人机地理测绘技术详解

无人机地理测绘技术&#xff0c;作为现代测绘领域的一项重要革新&#xff0c;融合了无人机技术、遥感技术、地理信息系统&#xff08;GIS&#xff09;及全球定位系统&#xff08;GPS&#xff09;等多学科技术。该技术通过无人机搭载的高精度传感器&#xff0c;如相机、激光雷达…

Midjourney 图生图,真人二次元保持一致性,场景多元可选择

Midjourney 图生图&#xff0c;真人二次元保持一致性&#xff0c;场景多元可选择 Midjourney 拥有强大的图生图的功能&#xff0c;下面我们就来看一下&#xff0c;如何在我们的AceDataCloud网站上实现将照片切换成任意的二次元场景&#xff0c;同时保持人物的一致性。 注册链…

Azure Data Factory 多选选项集不受支持

在用ADF往外部推数据时&#xff0c;会碰到CRM的一种数据类型&#xff0c;多选下拉框&#xff0c;如下图中的 如果我们把多选字段输入源字段中&#xff0c;会得到如下的提示 查询官方文档&#xff0c;则有如下的说法 所以把值往外推就需要变通下&#xff0c;例如使用一个文本字段…

【一起学Rust | 框架篇 | Tauri2.0框架】command拆分模块

文章目录 前言1. 规划目录结构2. 编写command模块3. 注册command4. 编写utils模块 前言 上期曾提及&#xff0c;tauri 的 command 拆分模块乃是一种更为合理的方式。倘若将所有内容皆写入src-tauri/src/main.rs之中&#xff0c;将会致使代码难以进行维护&#xff0c;并且会显得…

CAN总线8路开关量DI输入8路带隔离集电极开路输出模块,数字量输入输出联动——DAM-C3022

#阿尔泰科技 简介&#xff1a; DAM-C3022为8路带隔离数字量输入&#xff0c;8路带隔离集电极开路输出&#xff0c;数字量输入与数字量输出实现联动&#xff0c;通道一一对应&#xff1b;CAN通讯接口&#xff0c;CAN2.0A标准帧格式&#xff0c;支持CAN-OPEN协议。 指标参数&am…

DOS介绍及最常用的20个dos操作命令

&#x1f680; 个人简介&#xff1a;某大型国企资深软件开发工程师&#xff0c;信息系统项目管理师、CSDN优质创作者、阿里云专家博主&#xff0c;华为云云享专家&#xff0c;分享前端后端相关技术与工作常见问题~ &#x1f49f; 作 者&#xff1a;码喽的自我修养&#x1f9…

IObit Uninstaller Pro v13.6.0.5 绿色便携免安装版本 下载

功能非常强大好用的软件卸载清理工具 下载地址(资源制作整理不易&#xff0c;下载使用需付费&#xff0c;不能接受请勿浪费时间下载) 链接&#xff1a;https://pan.baidu.com/s/1I7lbixooii9ezSrp3X-y-w?pwd716l 提取码&#xff1a;716l

深度学习中的ONNX模型部署(打包为exe独立运行)详细教程

摘要&#xff1a;在本教程中&#xff0c;详细介绍了如何将ONNX模型部署为独立的可执行文件。从环境准备开始&#xff0c;介绍了ONNX Runtime及其GPU版本的安装&#xff0c;确定CUDA和cuDNN版本的兼容性。给出了使用ONNX Runtime加载和推理模型&#xff0c;处理输入和输出数据的…

中国电子学会Python3级等级考试202403客观题解析3

18、 在 Python 中 print(tuple(range(0,8,3)))语句&#xff0c;执行的结果是&#xff1f;&#xff08; &#xff09; A (0,3,6) B (0,2,4,6) C (0,2,4,6) D (0,4) 答案&#xff1a;A range(0,8,3)生成的数据包括0&#xff0c;3&#xff0c;6&#xff1b;tuple()函数将其…

HarmonyOS开发实战( Beta5版)延迟加载lazy-import实践使用指导

随着应用功能持续增加&#xff0c;应用规模不断扩大&#xff0c;依赖的模块文件逐渐变多&#xff0c;应用冷启动加载模块的时间也越来越长。而在实际冷启动过程中执行了很多应用整体依赖但当前未使用的文件&#xff0c;此时可以通过延迟加载 lazy-import 的方法延缓对这些冗余文…

独立产品灵感周刊 DecoHack #066 – 下周苹果发布会要来了

本周刊记录有趣好玩的独立产品/设计/开发相关内容&#xff0c;每周一发布&#xff0c;往期内容同样精彩&#xff0c;感兴趣的伙伴可以到 官网查看更多内容。可以 邮件订阅或 RSS订阅本周刊。欢迎通过 Twitter 私信推荐或投稿。 &#x1f4bb; 产品推荐 1. Apple Bento Slides…

基于C++实现(MFC界面)家谱管理系统

一、题目&#xff1a;家谱管理系统 二、内容&#xff1a; 2.1 概述 2.1.1 选题原因 做此题的原因是因为可以比较方便的记录家族历代成员的情况与关系&#xff0c;能很好的保存家族每一代的信息&#xff0c;而不用人工纸质的方式来存取家谱&#xff0c;更便于人们保存和使用…

青蓝智慧科技:京津冀氢能与绿色低碳创新应用场景发布

8月29日&#xff0c;北京成功举办了京津冀&#xff08;唐山&#xff09;氢能与绿色低碳创新应用场景的发布及供需对接活动。 在此活动中&#xff0c;唐山市科技局推出了涉及氢能与绿色低碳的创新应用方案&#xff0c;这些方案旨在抓住京津冀氢燃料电池汽车示范城市群、碳达峰试…

java后端开发-Mybatis连接数据库步骤

&#x1f939;‍♀️潜意识起点&#xff1a;个人主页 &#x1f399;座右铭&#xff1a;得之坦然&#xff0c;失之淡然。 &#x1f48e;擅长领域&#xff1a;前端 是的&#xff0c;我需要您的&#xff1a; &#x1f9e1;点赞❤️关注&#x1f499;收藏&#x1f49b; 是我持…

软通动力子公司鸿湖万联重磅发布SwanLinkOS 5,擘画开源鸿蒙AI PC新篇章

在刚刚落下帷幕的首届H•I AI 探索峰会上&#xff0c;软通动力再次于鸿蒙生态领域实现突破。此次活动中&#xff0c;软通动力高级副总裁、鸿湖万联总经理秦张波发布SwanLinkOS 5&#xff08;天鸿操作系统&#xff09;&#xff0c;并联合软通计算&#xff08;同方计算机&#xf…

Qt 样式表、选择器、盒子模型

1、两种样式表的写法 方式一&#xff08;普通写法&#xff09;&#xff1a; this->setStyleSheet("QPushButton""{""background:yellow;""font:bold 14px;""color: red;""}""QPushButton:hover"&quo…

【Day07】

目录 MySQL-DQL- 基本查询 MySQL-DQL- 条件查询 MySQL-DQL- 聚合函数 MySQL-DQL- 分组查询 MySQL-DQL- 排序查询 MySQL-DQL- 分页查询 MySQL-DQL- 案例 MySQL-多表设计-一对多 MySQL-多表设计-一对多-外键约束 MySQL-多表设计-一对一&多对多 MySQL-多表设计-案例…

【MA35D1】buildroot 编译使用经验

文章目录 芯片介绍Buildroot开发Linux实践环境搭建代码获取编译执行步骤&#xff08;仅适用于我公司产品&#xff09; 后续有需要更改的输出文件目录 芯片介绍 NuMicro MA35D1系列为一颗异核同构的多核心微处理器&#xff0c;适用于高端 Edge IIoT Gateway。它是基于双核 64 位…

【OpenWrt(3)】内网搭建iperf3测速服务器

下载的iperf3 网站&#xff1a;https://iperf.fr/iperf-download.php Window地址&#xff1a;https://github.com/ar51an/iperf3-win-builds 安卓&#xff1a;https://gitee.com/hiyanyx/magic-i-perf 文章目录 下载的iperf3Windows 服务器启动安卓客户端启动参考 Windows 服务…