API хранилища куки
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Примечание: Эта функция доступна в рабочих процессах Service Workers.
API хранилища куки — это асинхронный API для управления куками, доступный в окнах и также в рабочих процессах service workers.
Концепции и использование
Существующий метод получения и установки куки включает работу с document.cookie как с строкой пар ключ/значение. Помимо того, что это неудобно и подвержено ошибкам, это также имеет множество проблем в контексте современной разработки веб-приложений.
Интерфейс document.cookie является синхронным, однопоточным и блокирующим. При записи куки необходимо дождаться обновления браузером строки всех куки. Кроме того, зависимость от document означает, что куки недоступны для рабочих процессов service workers, которые не могут получить доступ к объекту document.
API хранилища куки предоставляет обновлённый способ управления куками. Он асинхронный и основан на промисах, поэтому не блокирует цикл событий. Он не полагается на document и поэтому доступен для рабочих процессов service workers. Методы получения и установки куки также предоставляют более подробную обратную связь в виде сообщений об ошибках. Это означает, что разработчики веб-приложений не должны устанавливать и сразу же считывать куки, чтобы проверить, была ли установка успешной.
Интерфейсы
-
Интерфейс
CookieStoreпозволяет получать и устанавливать куки. -
Интерфейс
CookieStoreManagerпредоставляет регистрацию рабочих процессов service workers для возможности подписки рабочих процессов service workers на события изменения куки. -
Событие
CookieChangeEventс именемchangeотправляется объектамCookieStoreв контекстахWindowпри любых изменениях видимых куки. -
Событие
ExtendableCookieChangeEventс именемcookiechangeотправляется в контекстахServiceWorkerGlobalScopeпри любых изменениях видимых куки, которые соответствуют списку подписки рабочего процесса service worker на изменения куки.
Расширения для других интерфейсов
-
Возвращает ссылку на объект
CookieStore, связанный с рабочим процессом service worker. -
Возвращает ссылку на интерфейс
CookieStoreManager, который позволяет веб-приложению подписываться и отписываться от событий изменения куки. -
Возвращает ссылку на объект
CookieStoreдля текущего контекста документа. -
Срабатывает при любых изменениях куки, которые соответствуют списку подписки рабочего процесса service worker на изменения куки.
Спецификации
| Спецификация |
|---|
| API хранилища куки |
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
Cookie_Store_API |
87 | 87 | Нет | 73 | Нет | 87 | Нет | 62 | Нет | 14.0 | 87 |
getSubscriptions |
87 | 87 | Нет | 73 | Нет | 87 | Нет | 62 | Нет | 14.0 | 87 |
subscribe |
87 | 87 | Нет | 73 | Нет | 87 | Нет | 62 | Нет | 14.0 | 87 |
unsubscribe |
87 | 87 | Нет | 73 | Нет | 87 | Нет | 62 | Нет | 14.0 | 87 |
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
Cookie_Store_API |
87 | 87 | превью | 73 | Нет | 87 | Нет | 62 | Нет | 14.0 | 87 |
change_event |
87 | 87 | превью | 73 | Нет | 87 | Нет | 62 | Нет | 14.0 | 87 |
delete |
87 | 87 | превью | 73 | Нет | 87 | Нет | 62 | Нет | 14.0 | 87 |
get |
87 | 87 | превью | 73 | Нет | 87 | Нет | 62 | Нет | 14.0 | 87 |
getAll |
87 | 87 | превью | 73 | Нет | 87 | Нет | 62 | Нет | 14.0 | 87 |
set |
87 | 87 | превью | 73 | Нет | 87 | Нет | 62 | Нет | 14.0 | 87 |
api.ХранилищеКуки
Таблицы BCD загружаются только в браузере
api.УправляющееХранилищеКуки
Таблицы BCD загружаются только в браузере
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Cookie_Store_API