Ответ
IndexedDB — это низкоуровневая NoSQL база данных в браузере для хранения больших объемов структурированных данных. Работал с ним для оффлайн-доступа к данным, кэширования и сложных запросов.
Основные моменты:
- Открытие базы через
indexedDB.open(name, version)с обработкойonupgradeneededдля создания схемы. - Работа с транзакциями (
readwrite,readonly) и хранилищами (objectStore). - Использование курсоров для итерации по данным и индексов для быстрого поиска.
Пример:
const request = indexedDB.open('myDB', 1);
request.onupgradeneeded = (e) => {
const db = e.target.result;
const store = db.createObjectStore('users', { keyPath: 'id' });
store.createIndex('name', 'name', { unique: false });
};Сложности:
- Асинхронность и event-based API.
- Обработка ошибок и версионирование.
Для удобства использовал библиотеки вроде idb или Dexie.js.