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

另見