Spec-Zone.ru › Web APIs

IDBFactory: метод open()

Базовая поддержка Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2021 года.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Web Workers.

Метод open() интерфейса IDBFactory запрашивает открытие соединения с базой данных.

Метод возвращает объект IDBOpenDBRequest сразу же и выполняет операцию открытия асинхронно. Если операция выполнена успешно, на объекте запроса, возвращаемом этим методом, генерируется событие success, и его свойство result устанавливается в новый объект IDBDatabase для соединения.

Может вызывать события upgradeneeded, blocked или versionchange.

Синтаксис

open(name)
open(name, version)

Параметры

name

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

version Необязательно

Необязательно. Версия базы данных для открытия. Если версия не указана и база данных существует, соединение с базой данных будет открыто без изменения ее версии. Если версия не указана и база данных не существует, она будет создана с версией 1.

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

Объект IDBOpenDBRequest, на котором будут сгенерированы последующие события, связанные с этим запросом.

Если операция выполнена успешно, свойство result запроса имеет значение объекта IDBDatabase, представляющего соединение с базой данных.

Исключения

TypeError

Выбрасывается, если значение version не является числом, большим нуля.

Примеры

Пример вызова open с параметром version текущей спецификации:

const request = window.indexedDB.open("toDoList", 4);

В следующем фрагменте кода мы запрашиваем открытие базы данных и обрабатываем случаи успеха и ошибки. Для полного рабочего примера см. наше приложение To-do Notifications (Посмотреть пример).

const note = document.querySelector("ul");

// Let us open version 4 of our database
const DBOpenRequest = window.indexedDB.open("toDoList", 4);

// these two event handlers act on the database being opened
// successfully, or not
DBOpenRequest.onerror = (event) => {
  note.appendChild(document.createElement("li")).textContent =
    "Error loading database.";
};

DBOpenRequest.onsuccess = (event) => {
  note.appendChild(document.createElement("li")).textContent =
    "Database initialized.";

  // store the result of opening the database in the db
  // variable. This is used a lot later on, for opening
  // transactions and suchlike.
  db = DBOpenRequest.result;
};

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

Спецификация
API базы данных Indexed 3.0
# ref-for-dom-idbfactory-open②

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
open 23 12 10 15 15
14–15В некоторых выпусках Safari 14 первый вызов indexedDB.open() зависает навсегда, см. ошибку 226547.
8–14
25 22 14 15
14–15В некоторых выпусках Safari на iOS 14 первый вызов indexedDB.open() зависает навсегда, см. ошибку 226547.
8–14
1.5 4.4

См. также

  • Использование 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/open

Spec-Zone.ru

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