Использование IndexDB в JavaScript
Доброго времени суток! Сегодня мы поговорим с Вами, о том, что такое IndexedDB в JavaScript.
IndexedDB (Indexed Database) — это встроенная база данных в браузере, предоставляющая JavaScript-интерфейс для хранения и работы со структурированными данными. Она предназначена для хранения более крупных объемов данных по сравнении с тем, что может предоставить localStorage или sessionStorage. Также IndexedDB поддерживает индексированный доступ к данным, что позволяет эффективно осуществлять запросы и фильтрацию.
Вот простой пример использования IndexedDB для хранения и получения данных:
// Открываем или создаем базу данных под названием myrusakov_db, версии 1
const request = indexedDB.open('myrusakov_db', 1);
// Обработчик события на случай изменения версии базы данных или для первоначальной инициализации
// таблиц с данными
request.onupgradeneeded = function(event) {
const db = event.target.result;
// Создаем хранилище объектов (таблицу) с именем "users" и указываем поле "id" как ключ
const objectStore = db.createObjectStore('users', { keyPath: 'id' });
// Создаем индекс для поля "name", "unique" - false
objectStore.createIndex('name_idx', 'name', { unique: false });
// Добавляем начальные данные
objectStore.add({ id: 1, name: 'Михаил Русаков', age: 33 });
objectStore.add({ id: 2, name: 'Михаил Русаков', age: 20 });
};
// Обработчик, который срабатывает при успешном открытии базы данных
request.onsuccess = function(event) {
const db = event.target.result;
// Получаем транзакцию для чтения данных
const transaction = db.transaction(['users'], 'readonly');
const objectStore = transaction.objectStore('users');
// Получаем объект по ключу (id)
const getRequest = objectStore.get(1);
getRequest.onsuccess = function(event) {
const userData = event.target.result;
console.log('Пользователь:', userData);
};
// Завершаем транзакцию
transaction.oncomplete = function() {
console.log('Транзакция завершена.');
};
};
// Обработчик ошибок открытия базы данных
request.onerror = function(event) {
console.error('Ошибка открытия базы данных:', event.target.error);
};
В примере выше:
IndexedDB предоставляет более продвинутые возможности для работы с данными, включая индексы, транзакции, запросы по диапазону и т.д. Это позволяет эффективно хранить и извлекать большие объемы структурированных данных в веб-приложениях.
Кстати, с помощью JavaScript можно создавать очень сложные приложения, которые, часто, не отличить от обычных настольных приложений. Об этом и многом другом из мира JavaScript Вы можете узнать из моего видеокурса Программирование на JavaScript с Нуля до Гуру 2.0