Обзор способов хранения данных "в браузере"
- Куки (Cookies)
- Веб хранилище (Web Storage)
- Indexed Database (IndexedDB)
- WebSQL Database
- Cache
- FileSystem API
Куки (Cookies)
В основном, используются для общения с сервером и передачи различных токенов, а также для слежения за пользователями в целях коммерческой выгоды (рекламные сети).
Веб хранилище (Web Storage API)
Также известное как DOM Storage, это ограниченное по размеру хранилище типа ключ/значение,
в котором данные можно хранить только в виде строк.
Веб хранилище может быть двух типов (оба доступны в Window
):
- Сессионное (
sessionStorage
) — доступно в течение одной сессии (пока браузер открыт); - Локальное (
localStorage
) — доступно даже если перезапустить браузер.
Каждый браузер имеет своё ограничение размера для обоих типов. В основном, оно колеблится в районе 2,5 – 5 Mb.
Для работы с хранилищем доступны следующие методы:
setItem
— добавить или обновить значение;getItem
— получить значение;removeItem
— удалить ключ/значение;clear
— очистить хранилище.
Примечание: На событие изменения хранилища можно подписаться:
window.addEventListener('storage', event => {});
.
Подробнее в StorageEvent.
Indexed Database (IndexedDB)
IndexedDB — объектно-ориентированная база данных, для работы с большими объёмами информации. Высокая скорость поиска обеспечивается возможностью индексировать поля.
WebSQL Database
⚠️ Deprecated с 18 ноября 2010 года.
Cache
Предоставляет механизм хранения кешированных пар объектов Request / Response, например, как часть жизненного цикла ServiceWorker. Основное применение — кеширование ресурсов для офлайн работы веб-приложение.
File and Directory Entries API
С помощью этого API можно управлять (read, write, and create) файлами и дерикториями в виртуальной (sandboxed) файловой системе.
⚠️ Не является стандартом, и мало где поддерживается.