Cookie用于存储web页面的用户信息
Cookie是一些数据,存储于电脑上的文本中。
当web服务器向浏览器发送web页面时,链接关闭后,服务端不会记录用户的信息
Cookie的作用是"如何记录客服端的用户信息"
1. 当用户访问web页面时,他的名字可以记录在cookie中。
2. 用户下一次访问该页面时,可以在cookie中读取用户记录。
Cookie以名/值得形式存储,如下所示
Username=John Doe
当浏览器从服务器上请求web页面时,属于该页面的cookie会被添加在该请求中。服务端通过这种方式来获取用户信息
JavaScript可以使用document.cookie属性来创建、读取、删除cookie!
JavaScript中,创建cookie如下所示:
document.cookie="username=John Doe";
你开可以为cookie添加一个过期时间(以UTC或GMT时间)。默认情况下,cookie在浏览器关闭时删除:
document.cookie="username=John doe;expires=Thu,18 Dec 2043 12:00:00 GMT";
Path参数告诉浏览器cookie的路径。默认情况下,cookie属于当前页面
document.cookie="username=John Doe;expires=Thu,18 Dec 2043 12:00:00 GMT;path=/";
使用JavaScript读取cookie
在JavaScript中,可以使用以下代码来读取cookie
var x=document.cookie;
document.cookie将以字符串的方式返回所有cookie,类型格式:
cookie1=value;cookie2=value;cookie3=value;
在使用JavaScript中,修改cookie类似于创建cookie,如下所示:
document.cookie="username=John Smith;expires=Thu, 18 Dec 2043 12:00:00 GMT;path=/";
旧的cookie将被覆盖
删除cookie非常简单。只需要设置expires参数为以前的时间即可,如下所示,设置为Thu,01 Jan 1970 00:00:00 GMT:
document.cookie="username=;expiress=Thu. 01 Jan 1970 00:00: GMT";
*当你删除时不必指定cookie值
document.cookie 属性看起来像一个普通的文本字符串,其实它不是。
即使您在 document.cookie 中写入一个完整的 cookie 字符串, 当您重新读取该 cookie 信息时,cookie 信息是以名/值对的形式展示的。
如果您设置了新的 cookie,旧的 cookie 不会被覆盖。 新 cookie 将添加到 document.cookie 中,所以如果您重新读取document.cookie,您将获得如下所示的数据:
cookie1=value; cookie2=value;
*如果您需要查找一个指定 cookie 值,您必须创建一个JavaScript 函数在 cookie 字符串中查找 cookie 值。
JavaScript Cookie实例
在以下实例中,我们将创建cookie来存储访问者的名称
首先,访问者访问web页面,他将被要求填写自己的名字。改名字会存储在cookie中。
访问者下一次访问页面时,他会看到一个欢迎的消息。
在这个实例中我们会创建3个JavaScript函数
1、 设置cookie值得函数
2、 获取cookie值得函数
3、 检测cookie值得函数
首先,创建一个函数用于存储访问者的名字:
以上的函数参数中,cookie的名称为出那么,cookie的值为cvalue,并设置了cookie的过期时间expires。
该函数设置了cookie名,cookie值、cookie过期时间。
然后,创建一个函数用户返回指定的cookie值:
cookie名的参数为cname。
创建一个文本变量用于检索指定的cookie:cname+"="。
使用分号来分割document.cookie字符串,并将分割后的字符串数组赋给ca(ca=document.cookie.split(";"))。
循环ca数组(i=0;i<ca.length;i++),然后读取数组中的每个值,并除去前后空格(c=ca[i].trim())。
如果找到cookie(c.indexOf(name)==0),返回cookie的值(c.substring(name.length;c.length)。
如果没有找到cookie,返回""。
创建一个检测cookie的函数。
如果设置了cookie,将显示一个问候信息。
如果没有设置cookie,将会显示一个弹窗用于询问防问者的名字,并调用setCookie函数将访问者的名字存储365天;
实例:
着互联网的发展,越来越多的网站开始使用 cookie 来保存用户的偏好设置、登录状态等信息。cookie 是一种存储在用户浏览器中的小文本文件,用于跟踪用户的行为和识别用户身份。在前端开发中,我们常常需要使用 cookie 来保存和获取一些数据。而 js-cookie 就是一个用于操作 cookie 的 JavaScript 库。
js-cookie 是一个简单易用的 cookie 操作库,它提供了一系列的方法来操作 cookie。下面我们就来详细了解一下 js-cookie。
在使用 js-cookie 之前,我们需要先安装它。可以通过 npm 包管理器来安装 js-cookie:
npm install --save js-cookie
安装完 js-cookie 后,我们就可以在 JavaScript 代码中使用它了。下面是一些常见的使用方法:
// 将数据保存到 cookie
Cookies.set('name', '张三');
// 通过 cookie 获取数据
var name = Cookies.get('name');
// 删除 cookie
Cookies.remove('name');
以上代码通过 js-cookie 的 set 方法将数据保存到 cookie 中,通过 get 方法获取 cookie 中的数据,通过 remove 方法删除 cookie。
除了上述方法外,js-cookie 还提供了一些其他的方法,如下所示:
js-cookie 是一个简单易用的 cookie 操作库,它提供了一系列的方法来操作 cookie。使用 js-cookie 可以简化 cookie 操作的代码,并提高代码的可读性。在前端开发中,我们可以根据实际需求来使用 js-cookie 来保存和获取 cookie 中的数据。
eb 服务器和 HTTP 服务器是无状态的,因此当 Web 服务器将网页发送到浏览器时,连接会被断开,服务器会忘记与用户相关的所有内容。
那么浏览器和 Web 服务器是怎样记住用户信息的?cookie 被发明出来解决这个问题。
当用户访问网页时,他们的名字、唯一 ID 或其他任何信息都可以存储在浏览器的 cookie 中。当用户下次又回到网页时,cookie 将记住他们的名字或唯一 ID。
Cookie 只是存储在计算机浏览器中的小型文本文件。它们包含以下数据:
而cookie也有一些值得一提的限制:
每个cookie的最大为 4096 字节
每个域最多20个cookie(每个浏览器略有不同)
Cookie是其自己的域名专用的(网站无法读取其他域的 Cookie,只能是它自己的)
大小限制适用于整个cookie,而不仅仅是它的值
在浏览器中,cookie通过 DOM 被公开为 document.cookies。
下面我们将介绍如何用 JavaScript 在浏览器中设置、获取、更新和删除 Cookie 数据。
目录
Create Cookies
Read Cookies
Update Cookies
Delete Cookies
Create Cookies
用 JavaScript 在浏览器中设置 cookie 非常简单!我将在下面向你展示。
设置 Cookie
以下是在浏览器中用 JavaScript 创建新 cookie 的执行代码:
document.cookie = "userId=nick123"
运行该代码后,打开浏览器,你应该能在开发者工具的 Application(Safari 或Chrome)或 Storage(Firefox)中找到该 cookie。
设置 cookie 的过期时间
你还可以向 Cookie 中添加过期时间(UTC),告知浏览器应该在什么时候将其删除:
document.cookie = "userId=nick123; expires=Wed, 15 Jan 2020 12:00:00 UTC"
设置一个 Cookie 路径
你还可以告诉浏览器 cookie 所属的路径(默认值是当前页面的路径):
document.cookie = "userId=nick123; expires=Wed, 15 Jan 2020 12:00:00 UTC; path=/user"
设置 cookie 域
我们将介绍的最后一段数据是 cookie 所属的域(默认为当前域):
document.cookie = "userId=nick123; expires=Wed, 15 Jan 2020 12:00:00 UTC; path=/user; domain=mysite.com"
Read Cookies
通过 document.cookie 对象,用 JavaScript 读取 cookie 也非常简单:
读取单个页面所有的 Cookie
将单个页面的所有 cookie 作为字符串获取,每个 cookie 用分号分隔:
const cookies = document.cookie
读取具有特定名称的Cookie
要访问具有特定名称的 cookie,我们需要获取页面上所有的 cookie 并解析字符串,然后查找我们想要寻找的 cookie 名称的匹配项。
这是一个用正则表达式完成此任务的函数:
function getCookieValue(name) {
let result = document.cookie.match("(^|[^;]+)\\s*" + name + "\\s*=\\s*([^;]+)")
return result ? result.pop() : ""
}
你这样使用该函数:
getCookieValue("userId") //returns nick123
这将返回与提供给函数的 name 参数对应的字符串值。
如果你还没有掌握正则表达式,还有另一个同样功能的函数:
function getCookieValue(name) {
const nameString = name + "="
const value = document.cookie.split(";").filter(item => {
return item.includes(nameString)
})
if (value.length) {
return value[0].substring(nameString.length, value[0].length)
} else {
return ""
}
}
用相同的方法使用该函数:
getCookieValue("userId") //returns nick123
Update Cookies
你可以通过创建的方式用新值覆盖 cookie 来更改它的值。
你可以用此代码覆盖本文前面创建的 cookie "userId" :
document.cookie = "userId=new_value"
当你再次运行 getCookieValue 函数时,将返回新值:
getCookieValue("userId") //returns new_value
Delete Cookies
你可以给 cookie 设置一个空值,并将其过期日期设置为过去的任意时间来删除 cookie。
如果我们想要删除前面例子的 cookie "userId" ,请按以下步骤操作:
document.cookie = "userId=; expires=Thu,
*请认真填写需求信息,我们会在24小时内与您取得联系。