Spec-Zone.ru › Web APIs

IDBFactory: метод databases()

Примечание: Эта функция доступна в Веб-воркерах.

Метод databases интерфейса IDBFactory возвращает обещание, которое выполняется с массивом объектов, содержащих имя и версию всех доступных баз данных.

Это моментальный снимок баз данных, предназначенный в первую очередь для того, чтобы веб-приложения могли проверить, какие базы данных были созданы — например, чтобы очистить базы данных, созданные более ранними версиями кода приложения.

Синтаксис

databases()

Параметры

Нет.

Возвращаемое значение

Обещание Promise, которое выполняется с массивом объектов, представляющих моментальный снимок доступных баз данных (или отклоняется с ошибкой/исключениями, описанными ниже).

Каждый объект в массиве имеет следующие свойства:

Имя

Имя базы данных.

Версия

Версия базы данных.

Обратите внимание, что порядок возвращаемых объектов не определен.

Исключения

SecurityError Ошибка безопасности

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

UnknownError Ошибка неизвестного типа

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

Примеры

Создание и перечисление баз данных

В этом примере создается/открывается несколько баз данных. При успешном инициализации каждой базы данных перечисляются все доступные базы данных.

JavaScript

Сначала мы определяем функцию, которая используется для получения и вывода доступных баз данных. Она ожидает выполнение обещания, возвращаемого методом indexedDB.databases(), а затем итерирует массив и выводит значения каждого элемента:

async function getDb() {
  const databases = await indexedDB.databases();
  log("List databases:");
  databases.forEach((element) => {
    log(`name: ${element.name}, version: ${element.version}`);
  });
}

Чтобы продемонстрировать использование вышеприведенной функции, ниже мы создаем две базы данных. Перед открытием каждой базы данных мы выводим сообщение. Мы также выводим сообщение об успешной инициализации (или об ошибке), а затем выводим доступные базы данных.

// Create a database named toDoList with default version (1)
const dbName1 = "toDoList";
log(`Opening: ${dbName1}`);
let DBOpenRequest = window.indexedDB.open(dbName1);

DBOpenRequest.addEventListener("error", (event) => {
  log(`Error opening: ${dbName1}`);
  getDb();
});

DBOpenRequest.addEventListener("success", (event) => {
  log(`Initialized: ${dbName1}`);
  getDb();
});

// Create database "AnotherDb"
const dbName2 = "AnotherDb";
log(`Opening ${dbName2}`);
DBOpenRequest = window.indexedDB.open(dbName2, 2);

DBOpenRequest.addEventListener("error", (event) => {
  log(`Error opening: ${dbName2}`);
  getDb();
});

DBOpenRequest.addEventListener("success", (event) => {
  log(`Initialized: ${dbName2}`);
  getDb();
});

Результат

Результат показан ниже. Обратите внимание, что время, затраченное на получение баз данных, и их порядок не определены.

Спецификации

Спецификация
API индексированных баз данных 3.0
# ref-for-dom-idbfactory-databases①

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
databases 72 79 126 60 14 72 126 51 14 11.0 72

См. также

  • Использование IndexedDB
  • Начало транзакций: IDBDatabase
  • Использование транзакций: IDBTransaction
  • Установка диапазона ключей: IDBKeyRange
  • Получение и изменение данных: IDBObjectStore
  • Использование курсоров: IDBCursor
  • Пример справки: Уведомления о задачах (Просмотреть пример в браузере).

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/databases

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API