Какое ограничение места в 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.