Cookie Store API

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能在 Service Workers 中可用。

Cookie Store API 是一种用于管理 Cookie 的异步 API,可在窗口以及 Service Worker 中使用。

概念与用法

获取和设置 Cookie 的原始方法是通过操作 document.cookie 来以键值对字符串的形式获取和设置 Cookie 信息。这种方法不仅繁琐且容易出错,而且在现代 Web 开发的上下文中还存在许多问题。

document.cookie 接口是 同步、单线程且阻塞的。在写入 Cookie 时,您必须等待浏览器更新所有 Cookie 的字符串。此外,对 document 的依赖意味着 Service Worker 无法访问 Cookie,因为它们无法访问 document 对象。

Cookie Store API 提供了一种更新的 Cookie 管理方法。它具有 异步性并且基于 Promise,因此不会阻塞事件循环。它不依赖于 Document,因此可供 Service Worker 使用。获取和设置 Cookie 的方法通过错误消息提供了更多反馈。这意味着 Web 开发者无需设置然后立即读回 Cookie 来检查设置是否成功。

接口

CookieStore 实验性的

CookieStore 接口支持获取和设置 Cookie。

CookieStoreManager 实验性的

CookieStoreManager 接口提供了一个 Service Worker 注册,使 Service Worker 能够订阅 Cookie 更改事件。

CookieChangeEvent 实验性的

当任何脚本可见的 Cookie 发生更改时,在 Window 上下文中会针对 CookieStore 对象分派一个名为 changeCookieChangeEvent

ExtendableCookieChangeEvent

当任何脚本可见的 Cookie 发生更改并且匹配 Service Worker 的 Cookie 更改订阅列表时,在 ServiceWorkerGlobalScope 上下文中会分派一个名为 cookiechangeExtendableCookieChangeEvent

其他接口的扩展

ServiceWorkerGlobalScope.cookieStore 只读 实验性的

返回与 Service Worker 关联的 CookieStore 对象的引用。

ServiceWorkerRegistration.cookies 只读 实验性的

返回 CookieStoreManager 接口的引用,该接口使 Web 应用能够订阅和取消订阅 Cookie 更改事件。

Window.cookieStore 只读 实验性的

返回当前文档上下文的 CookieStore 对象的引用。

cookiechange 事件 实验性的

当发生任何与 Service Worker 的 Cookie 更改订阅列表匹配的 Cookie 更改时触发。

规范

规范
Cookie Store API

浏览器兼容性

api.CookieStore

api.CookieStoreManager

另见