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

Какое ограничение места в IndexedDB?

DOM и браузер

Ограничение места в IndexedDB зависит от квоты браузера — обычно значительная часть свободного места на диске (гигабайты), а не фиксированный лимит. Точное значение проверяют через `navigator.storage.estimate()`.

Квота IndexedDB

В отличие от localStorage (~5–10 МБ), IndexedDB имеет большой лимит:

  • Обычно процент от свободного места на диске (часто ~50–60% доступного, может быть гигабайты).
  • Зависит от браузера, устройства, свободного места.
  • Квота делится между IndexedDB, Cache API и другими хранилищами origin.

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

const { quota, usage } = await navigator.storage.estimate();
console.log(`Использовано ${usage} из ${quota} байт`);
  • quota — доступный лимит для origin.
  • usage — текущее использование.

Persistent storage

По умолчанию хранилище «best-effort» — браузер может вытеснить данные при нехватке места. Можно запросить постоянное хранилище:

const isPersisted = await navigator.storage.persist();
// true → данные не будут вытеснены автоматически

Вытеснение (eviction)

При нехватке места браузер может удалить данные origin (best-effort). Для важных данных запрашивают persist().

Практика

  • Не полагаться на фиксированный лимит — проверять через estimate().
  • Для критичных данных — persist().
  • Обрабатывать QuotaExceededError при записи.

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

IndexedDB не имеет фиксированного лимита — квота зависит от браузера и свободного места на диске (часто процент, гигабайты), делится с Cache API. Проверяют через navigator.storage.estimate() (quota/usage). По умолчанию хранилище best-effort (может вытесняться); для важных данных — navigator.storage.persist(). Обрабатывать QuotaExceededError.

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