
您是否想过网站是如何记住您的登录信息、购物车内容和其他偏好的?答案就是 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 不被攻击者窃取或修改。
宝塔面板现在已经成为国内许多站长必备的服务器管理必备工具。相比直接使用SSH+FTP来管理服务器,宝塔面板可以提供可视化管理,包括文件管理、数据库管理、数据备份、SSL配置等等。 如果你希望更简单高效地管理您的网站及服务器,宝塔面板是不错的选择。下面是一些宝塔面板安装及常见问题:...
Linux面板环境安装,主要支持LNMP和LAMP、Tomcat、node.js。不过对于大部分站长来说,主要是LNMP和LAMP两个环境的安装。 LNMP和LAMP两个环境的最大区别是,前者采用Nginx作为Web服务器,后者则采用Apache作为Web服务器。(选择哪个作为您的Web服务器,可...
使用宝塔面板,您可以快速地创建一个FTP管理账户,对网站文件进行管理。但有必要提醒大家的是,使用FTP远不如使用SFTP安全,你可以查看文章“”进一步了解两者之间的差异。 此外,宝塔面板的文件管理模块其实已经能够满足站长的大部分文件管理需求。当然,如果你非得要使用FTP管理服务器文件,可以参照以下...
每台连接到Internet的计算机都有一个Internet协议 (IP) 地址。但是,并非所有IP地址的外观或行为都相同。 如果您使用计算机网络或服务器,了解动态IP和静态IP之间的区别至关重要。通过详细了解每个协议,您可以选择最适合您需求的解决方案。 在本文中,我们将讨论静态和动态IP之间...
宝塔面板设置主要涉及的是宝塔控制后台自身的参数,包括诸如面板的开关、自动更新及SSL、面板端口设置等。虽然这部分不涉及服务器自身的管理,但对宝塔面板的设置也有其重要。 特别是面板端口、安全入口及面板密码等涉及安全的参数设置。 启动和关闭面板 如果你长时间无需使用到宝塔面板,可以考虑...
宝塔面板提供丰富的软件以一键安装,这让服务器环境搭建提供不少的便利性,站长可以根据实际需求快速编译安装以实现不同的功能需求。 软件管理,主要是宝塔提供的一些面板扩展插件。 Nginx Nginx是一个高性能的HTTP和反向代理服务器,具有轻量级、占用内存小,并发能力强等优势。 w...