JS一千问(9):如何使用Cookie?

Cookie 是存储在计算机上的小型文本文件中的数据 。Web 浏览器和服务器使用 HTTP 协议进行通信,HTTP 是一种无状态协议。当 Web 服务器将网页发送到浏览器时,连接会关闭,并且服务器会忘记有关用户的所有信息。但是对于商业网站,需要维护不同页面之间的会话信息。为了方便记住用户信息, cookie应运而生。

cookie以键值对的形式存储在计算机中。在JavaScript中,使用 “document.cookie” 属性来创建、删除和读取cookie。注意,这个对象提供的接口非常原始。

 document.cookie = "user=koala";

添加到期日期(UTC 时间):

 document.cookie = "user=koala; expires=Fri, 23 Dec 2021 11:20:00 UTC";

使用path参数,可以告诉浏览器cookie所属的路径。默认情况下,cookie属于当前页面。

 document.cookie = "user=koala; expires=Fri, 23 Dec 2021 11:20:00 UTC;path=/";

在JavaScript中更改cookie与创建它们相同,旧cookie的值被删除。

var temp = document.cookie;
 
document.cookie = "user=; expires=Fri, 23 Dec 2021 11:20:00 UTC;path=/";

简单封装:

// 设置
function setCookie(cookName, cookValue, expiry) {
	var dt = new Date();
	dt.setTime(dt.getTime() + (expiry * 24 * 60 * 60 * 1000));
	var expires = "expires=" + dt.toUTCString();
	document.cookie = cookName + "=" + cookValue + ";" + expiry + ";path=/";
}

// 读取
function getCookie(cookName) {
	var cname = cookName + "=";
	var deCookie = decodeURIComponent(document.cookie);
	var cookArray = decodedCookie.split(';');
	for (var i = 0; i < cookArray.length; i++) {
		var c = cookArray;
		while (c.charAt(0) == ' ') {
			c = c.substring(1);
		}
		if (c.indexOf(cname) == 0) {
			return c.substring(cname.length, c.length);
		}
	}
	return "";
}

// 删除
function deleteCookie(name) {
	setCookie(name, "", -1);
}

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注