Spec-Zone.ru › Web APIs

IDBRequest

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

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

* Некоторые части этой функции могут иметь различный уровень поддержки.

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

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

Интерфейс IDBRequest API IndexedDB предоставляет доступ к результатам асинхронных запросов к базам данных и объектам баз данных с использованием атрибутов обработчиков событий. Каждая операция чтения и записи в базе данных выполняется с помощью запроса.

Объект запроса изначально не содержит никакой информации о результате операции, но как только информация становится доступной, на запросе генерируется событие, и информация становится доступной через свойства экземпляра IDBRequest.

Все асинхронные операции немедленно возвращают экземпляр IDBRequest. Каждый запрос имеет состояние readyState, которое устанавливается в 'pending' состояние; оно меняется на 'done' при завершении или ошибке запроса. Когда состояние устанавливается в done, каждый запрос возвращает result и error, и на запросе генерируется событие. Когда состояние всё ещё pending, любая попытка доступа к result или error вызывает исключение InvalidStateError.

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

Интерфейс IDBOpenDBRequest наследуется от IDBRequest.

EventTarget IDBRequest

Свойства экземпляра

Также наследует свойства от EventTarget.

IDBRequest.error Только для чтения

Возвращает DOMException в случае неудачного запроса, указывая, что пошло не так.

IDBRequest.result Только для чтения

Возвращает результат запроса. Если запрос не завершен, результат недоступен, и вызывается исключение InvalidStateError.

IDBRequest.source Только для чтения

Источник запроса, например, IDBIndex или IDBObjectStore. Если источник отсутствует (например, при вызове IDBFactory.open), возвращается null.

IDBRequest.readyState Только для чтения

Состояние запроса. Каждый запрос начинается в состоянии pending. Состояние изменяется на done при успешном завершении запроса или при возникновении ошибки.

IDBRequest.transaction Только для чтения

Транзакция для запроса. Это свойство может быть null для некоторых запросов, например, тех, что возвращаются из IDBFactory.open, если не требуется обновление. (Вы просто подключаетесь к базе данных, поэтому транзакция для возврата отсутствует).

Методы экземпляра

Нет методов, но наследуются методы от EventTarget.

События

Подпишитесь на эти события, используя addEventListener() или назначив обработчик событий свойству oneventname этого интерфейса.

error

Срабатывает, когда ошибка приводит к сбою запроса.

success

Срабатывает, когда запрос IDBRequest завершается успешно.

Пример

В следующем фрагменте кода мы асинхронно открываем базу данных и отправляем запрос; функции onerror и onsuccess включены для обработки случаев успеха и ошибки. Для полного рабочего примера обратитесь к нашему приложению Уведомления о задачах (посмотреть пример онлайн.)

let db;

// Let us open 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.
  db = DBOpenRequest.result;
};

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

Спецификация
API баз данных Indexed 3.0
# request-api

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
IDBRequest 242–57 12 1610–16 15 8 2525–57 22 14 8 1.51.5–7.0 4.4≤37–57
error 23 12 10 15 8 25 22 14 8 1.5 4.4
error_event 23 12 10 15 8 25 22 14 8 1.5 4.4
readyState 23 12 10 15 8 25 22 14 8 1.5 4.4
result 23 12 10 15 8 25 22 14 8 1.5 4.4
source 23 12 10 15 8 25 22 14 8 1.5 4.4
success_event 23 12 10 15 8 25 22 14 8 1.5 4.4
transaction 23 12 10 15 8 25 22 14 8 1.5 4.4
worker_support 23 12 37 15 10 25 37 14 10 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/IDBRequest

Spec-Zone.ru

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