Что такое IndexDB

Ответ

IndexedDB — это NoSQL база данных в браузере, позволяющая хранить большие объемы структурированных данных на стороне клиента. В отличие от localStorage, поддерживает транзакции, индексы и асинхронные операции.

Ключевые особенности:

  • Работает в основном потоке, но не блокирует UI (асинхронный API)
  • Хранит данные в виде пар ключ-значение
  • Поддерживает сложные запросы через индексы
  • Лимит хранилища зависит от браузера (обычно 50-80% от свободного места на диске)

Пример использования:

const request = indexedDB.open('MyDatabase', 1);

request.onupgradeneeded = (event) => {
  const db = event.target.result;
  const store = db.createObjectStore('books', { keyPath: 'id' });
  store.createIndex('by_title', 'title', { unique: false });
};

request.onsuccess = (event) => {
  const db = event.target.result;
  const tx = db.transaction('books', 'readwrite');
  const store = tx.objectStore('books');

  store.add({ id: 1, title: 'JavaScript: The Good Parts' });
};