
您是否想过网站是如何记住您的登录信息、购物车内容和其他偏好的?答案就是 cookie。本文将解释 Cookie 的类型、在 JavaScript 中使用 Cookie、何时使用 Cookie 以及更佳实践。
通过在用户设备上存储少量信息,在增强网站用户体验方面发挥着重要作用。这些信息可以帮助网站记住用户的偏好和活动,使后续访问更加个性化。
Cookie 就像网站在你访问时留在电脑上的小纸条。这些笔记包含有关您访问的小信息,如用户名、语言偏好或您添加到购物车的商品。它们就像是网站的有用记忆。当你访问一个网站时,就像是在进行一次对话。你要告诉网站你的姓名、喜欢的语言和感兴趣的内容。网站会将这些信息写入 cookie,并安全地保存在你的设备上。在 *** 开发世界中,JavaScript 帮助这些 cookie 正常工作。
Cookie 有不同的类型,每种类型都有其独特的作用,以提高您的浏览体验。了解 Cookie 的类型有助于你理解网站如何记住你的偏好和操作。让我们来看看两种主要类型:
Cookie 可用于不同的目的,但一般用于改善用户体验和提高网站效率。以下是何时使用 Cookie 的一些具体示例:
Cookie 可以有多种属性,用于控制 cookie 的使用方式和存储时间。最常见的 cookie 属性有:
在 JavaScript 中使用 Cookie 对于在客户端存储和管理数据至关重要。JavaScript 可以通过多种方式与 Cookie 配合使用。例如:
要设置或创建 cookie,我们需要向 document.cookie 属性分配一个字符串。该字符串通常包含 cookie 名称、其值和可选属性,如到期日期、域和路径。
设置 Cookie:
document.cookie = "username=ChisomKanu";
在这里,我们设置了一个简单的 “username” cookie,其值为 “ChisomKanu”。不过请注意,这个 Cookie 是会话 Cookie,即浏览器关闭后会被删除。
设置持久 Cookie:
const expirationDate = new Date(); expirationDate.setDate(expirationDate.getDate() + 7); // Cookie expires in 7 days document.cookie = "username=ChisomKanu; expires=" + expirationDate.toUTCString();
我们通过指定过期日期来设置持久 Cookie。Cookie 将保存七天,即使浏览器关闭后重新打开也是如此。
创建 Cookie 函数:为了简化 Cookie 创建过程并使其更易于重复使用,可以创建一个函数:
function setCookie(name, value, daysToExpire) {
const date = new Date();
date.setTime(date.getTime() + daysToExpire * 24 * 60 * 60 * 1000);
const expires = "expires=" + date.toUTCString();
document.cookie = name + "=" + value + "; " + expires + "; path=/";
}
// Usage:
setCookie("username", "ChisomKanu", 7); // Cookie will expire in 7 days
setCookie 函数接收 cookie 的名称、值和应持续的天数。它会计算到期日期,并相应地设置 cookie。
让我们一步步分解获取 cookie 数据的过程:
document.cookie :首先,我们将访问 document.cookie 属性,该属性包含当前文档的所有 cookie。.split('; ') *** 将 document.cookie 字符串拆分成单个键值对。该 *** 根据分号和空格来分割 cookie。.split('=') 将每个键值对拆分为 cookie 名称和值。让我们通过一个代码示例将这些步骤付诸实施:
function getCookies() {
const cookies = document.cookie.split('; ');
const cookieData = {};
for (let cookie of cookies) {
const [name, value] = cookie.split('=');
cookieData[name] = decodeURIComponent(value);
}
return cookieData;
}
const cookies = getCookies();
conSOLe.log(cookies);
getCookies 函数使用 .split('; ') 将 cookie 字符串分割成由单个 cookie 组成的数组。我们初始化一个空对象 cookieData,用于存储 cookie 的键值对。我们使用 for 循环遍历数组中的每个 cookie。我们使用 .split('=') 对每个 cookie 的名称和值进行分割。我们还使用 decodeURIComponent 来解码 cookie 值中的任何特殊字符。然后,我们以 cookie 名称作为键,以解码后的 cookie 值作为值,填充 cookieData 对象。最后,我们返回包含所有 cookie 信息的 cookieData 对象。
将 cookie 数据检索为 JavaScript 对象后,我们就可以使用各自的键访问单个 cookie 值了。
让我们用一个代码示例来说明使用检索到的 cookie 数据的过程:
function customizeUserExperience(cookies) {
if (cookies.username) {
console.log(`Welcome back, ${cookies.username}!`);
} else {
console.log('Welcome to our website!');
}
if (cookies.language) {
console.log(`Displaying content in ${cookies.language}.`);
// Additional logic to set the website language accordingly
}
}
// Assuming cookies is the cookie object retrieved earlier
customizeUserExperience(cookies);
customizeUserExperience 函数将检索到的 cookie 对象作为参数。它会检查 username cookie 是否存在。如果存在,则记录个性化欢迎信息。如果不存在,则会记录一条普通的欢迎信息。它还会检查语言 cookie 是否存在。如果存在,就会记录一条显示内容语言的信息。
还可以添加更多逻辑,以设置网站语言或根据其他检索到的 cookie 值定制用户界面。
Cookie 删除是 *** 开发的一个重要方面,可让开发人员有效管理用户数据和隐私。在 JavaScript 中,删除 Cookie 可以增强用户隐私或删除过时信息。删除 Cookie 时,它将从用户的设备中移除,浏览器将不再向服务器发送该 Cookie。Cookie 可以根据各种条件进行删除,如用户操作或不再需要某些数据时。
让我们看看使用 JavaScript 删除 cookie 的过程:
document.cookie: 首先,我们访问 document.cookie 属性来操作 cookie 数据。代码示例说明:
function deleteCookie(cookieName) {
document.cookie = `${cookieName}=; expires=Tue, 10 Oct 2023 00:00:00 UTC; path=/;`;
}
deleteCookie 函数将 cookie 名称作为参数。然后,函数会修改 document.cookie 属性,将指定 cookie 的有效期设置为过去的某个日期(2023 年 10 月 10 日)。path 属性被设置为”/”,以确保无论 cookie 的初始路径如何,都会被删除。
删除 cookie 时需要注意一些事项:
*** 开发人员经常使用浏览器 DevTools 来检查和分析 *** 应用程序的各个方面。作为 *** 开发的重要组成部分,Cookie 也可以使用 DevTools 进行检查。它使开发人员能够验证 Cookie 是否按预期进行设置、读取和删除。
首先,打开 *** 浏览器并导航到要检查 Cookie 的网页。进入网页后,可使用以下 *** 之一打开 DevTools:


要在 DevTools 中检查 Cookie,请按照以下步骤操作:
下图显示的是 google.com 的 cookies:


总之,需要注意的是,并非所有 cookie 都是一样的。有些 cookie 是网站正常运行所必需的,而另一些则用于跟踪和广告等不太重要的目的。不过,禁用 Cookie 可能会导致某些网站无法正常运行。Cookie 是改善用户体验的重要工具,但应谨慎使用。用户在访问网站时应了解自己接受的 Cookie 类型,并可选择禁用 Cookie。此外,禁用 cookie 可能会导致某些网站无法正常运行。网站应制定简洁明了的隐私政策,解释 cookie 的使用。开发人员应采取措施保护 cookie 不被攻击者窃取或修改。
扫描二维码推送至手机访问。
版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。
每台连接到Internet的计算机都有一个Internet协议 (IP) 地址。但是,并非所有IP地址的外观或行为都相同。 如果您使用计算机网络或服务器,了解动态IP和静态IP之间的区别至关重要。通过详细了解每个协议,您可以选择最适合您需求的解决方案。 在本文中,我们将讨论静态和动态IP之间...
宝塔的数据库管理,是基于phpmyadmin管理和新建数据库。其最大的便利性就是类似,通过面板可以快速访问进行管理操作,无需单独访问phpmyadmin的主页。 此外,在宝塔面板进行数据库管理,你也对数据库名、用户名及密码等信息一目了然,及可以对数据库执行快速备份或者导入。 添加数据...
宝塔面板其中一个最为便捷的功能之一,无需SFTP或者FTP即可对服务器的文件内容进行上传、下载、编辑及删除等管理操作。 文件管理,用于管理该服务器上的文件内容。 文件的基础操作 文件的基础操作有哪些了,主要有这些方面:复制、粘贴、剪切、删除、重命名、压缩、刷新、新建文件、新建目录。...
宝塔面板设置主要涉及的是宝塔控制后台自身的参数,包括诸如面板的开关、自动更新及SSL、面板端口设置等。虽然这部分不涉及服务器自身的管理,但对宝塔面板的设置也有其重要。 特别是面板端口、安全入口及面板密码等涉及安全的参数设置。 启动和关闭面板 如果你长时间无需使用到宝塔面板,可以考虑...
有时似乎有太多的商业首字母缩写词要记住。随着快速变化的技术进步和云计算的出现,新的类别将不断涌现。XaaS 就是这样一个最新的补充。 该领域的大多数读者都知道、和。但是你听说过XaaS吗? XaaS(一切皆服务)涵盖了一切:现在一切都可以成为服务。 这听起来好像很复杂的样子,但别担心——我...
Web服务器有助于为Internet提供动力,并且有许多不同的选项可用于托管您的网站或应用程序。您可能考虑使用的一种解决方案是。但是,要确定它是否是正确的选择,必须了解Web服务器软件的工作原理并与其他选项进行比较。 在这篇文章中,我们将解释什么是Microsoft IIS以及它与其他Web服...