В недавнем скринкасте я обсуждал локальное хранилище с помощью IndexedDB. Это важный API, который был представлен как часть спецификации HTML5 и неотъемлемая часть прогрессивных веб-приложений для поддержки автономных данных.

Ниже приведены мои примечания для справки из этого видео.

Если вы хотите создать прогрессивное веб-приложение, вам нужно убедиться, что вы правильно используете локальную среду пользователя. Это может помочь, если соединение пользователей разорвано, если у них есть проблемы с задержкой или они просто хотят работать в автономном режиме. Использование локального хранилища - вариант, но для управления транзакционными данными, которые могут быть чрезвычайно громоздкими и малоэффективными. Использование базы данных для хранения отлично, когда доступно активное соединение, но при активном соединении у нас есть IndexedDB. IndexedDB - это способ управления хранилищем данных для вашего веб-приложения локально на компьютере пользователя.

Некоторые важные моменты об indexDB: он использует ту же политику происхождения. Он асинхронный, но имеет синхронную версию. Он использует пары ключ-значение, такие как объекты Javascript

Что наиболее важно, он использует базу данных транзакций: транзакция символизирует единицу работы, выполняемую с базой данных независимо от других транзакций. Это ключевой момент, когда мы начинаем смотреть, как IndexedDB выполняет управление записями. Он также полагается на функции обратного вызова для обработки результатов при чтении / записи из БД.

Первое, что вам нужно сделать, это создать соединение с вашей базой данных. Впоследствии вы собираетесь создать хранилище объектов. Хранилище объектов - это интерфейс, который вы будете использовать для хранения пар записей / значений ключа, которые будут загружены в вашу базу данных.

Когда-нибудь objectStore понадобится ключ. Это уникальное значение вашего объекта. Поддерживаются два типа ключей. Один из них - keyPath. Другой - keyGenerator. KeyPath предназначен для случаев, когда у вас есть уникальное значение в ваших данных, которое вы хотите использовать в своем хранилище объектов. KeyGenerator - это когда вы хотите, чтобы уникальное значение было присвоено вашим данным программно.

Вы также можете создать дополнительные индексы для своих данных, которые можно использовать для поиска в них.

Для того, чтобы что-то сделать, вам нужно начать транзакцию. Доступны следующие типы транзакций: только чтение, чтение и запись и смена версии. Мы собираемся посмотреть, как создать транзакцию, которая записывает в базу данных. функция transaction () примет имя магазина (или список магазинов) и тип транзакции. Это вернет объект типа транзакции, который мы затем можем связать вместе

МЕТОДЫ

  • на успех
  • ошибка
  • addEventListener ()
  • removeEventListener ()

ХАРАКТЕРИСТИКИ

  • readyState
  • результат
  • код ошибки

Дополнительные комментарии

  • Вызовы запросов indexDB вернут объект IDBRequest.
  • Если база данных не существует, она создается операцией открытия при успехе и при ошибке.
  • на успехе не пузырится. onerror делает.

Ссылка



Https://github.com/ignoreintuition/indexDB.git