PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Какие есть ограничения по объему у хранилищ?

DOM и браузер

Ограничения по объёму: cookie — ~4 КБ, localStorage/sessionStorage — ~5–10 МБ, IndexedDB — большие объёмы (сотни МБ и больше, до % от диска), Cache API — тоже большой (зависит от квоты браузера).

Лимиты хранилищ

Cookie — ~4 КБ

На одну cookie ~4 КБ; общий лимит на домен — несколько десятков cookie. Плюс cookie шлётся с каждым запросом — большой размер бьёт по трафику.

localStorage / sessionStorage — ~5–10 МБ

Обычно ~5 МБ на origin (в некоторых браузерах до 10 МБ). Синхронный доступ — большие объёмы блокируют поток.

IndexedDB — большие объёмы

Сотни МБ и больше; лимит зависит от квоты браузера (часто процент от свободного места на диске — гигабайты). Для больших структурированных данных.

Cache API (Service Worker) — большой

Тоже подчиняется квоте origin (может быть много), для кеширования ресурсов.

Общая квота браузера

Браузеры выделяют origin общую квоту (для IndexedDB + Cache API), часто зависящую от свободного места на диске. При превышении — ошибки записи или вытеснение (eviction).

Проверка квоты

const { quota, usage } = await navigator.storage.estimate();

Как выбирать по объёму

  • Маленькие данные для сервера → cookie (~4 КБ).
  • До ~5 МБ клиентских настроек → localStorage.
  • Большие структурированные данные → IndexedDB.
  • Кеш ресурсов → Cache API.

Коротко для собеседования

Лимиты: cookie ~4 КБ (шлётся на сервер), localStorage/sessionStorage ~5–10 МБ на origin (синхронные), IndexedDB — большие объёмы (сотни МБ+, по квоте браузера, часто % диска), Cache API — тоже большой. Квоту проверяют через navigator.storage.estimate(). Выбор по объёму: cookie → localStorage → IndexedDB.

Другие вопросы раздела