Spec-Zone.ru › Web APIs

IDBObjectStore: метод get()

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

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

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

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

Метод get() интерфейса IDBObjectStore возвращает объект IDBRequest, который в отдельном потоке возвращает объект, выбранный по заданному ключу. Это используется для извлечения конкретных записей из хранилища объектов.

Если значение успешно найдено, то его структурная копия создаётся и устанавливается в свойство result объекта запроса.

Примечание: Этот метод даёт одинаковый результат для: а) записи, которой нет в базе данных, и б) записи, имеющей неопределённое значение. Чтобы отличить эти ситуации, вызовите метод openCursor() с тем же ключом. Этот метод предоставляет курсор, если запись существует, и не предоставляет курсор, если она отсутствует.

Синтаксис

get(key)

Параметры

key

Ключ или диапазон ключей, идентифицирующий извлекаемую запись.

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

Объект IDBRequest, на котором затем будут вызваны события, связанные с данной операцией.

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

Исключения

Этот метод может вызывать исключение DOMException одного из следующих типов:

TransactionInactiveError DOMException

Выбрасывается, если транзакция данного IDBObjectStore неактивна.

DataError DOMException

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

InvalidStateError DOMException

Выбрасывается, если IDBObjectStore был удалён.

Примеры

В следующем фрагменте кода мы открываем транзакцию чтения/записи в нашей базе данных и получаем конкретную запись из хранилища объектов с помощью get() — примера записи с ключом "Погулять с собакой". После получения этого объекта данных вы можете обновить его с помощью обычного JavaScript, а затем поместить его обратно в базу данных с помощью операции IDBObjectStore.put. Для полного примера смотрите наше приложение To-do Notifications (пример в браузере).

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

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 below
  db = DBOpenRequest.result;

  // Run the getData() function to get the data from the database
  getData();
};

function getData() {
  // open a read/write db transaction, ready for retrieving the data
  const transaction = db.transaction(["toDoList"], "readwrite");

  // report on the success of the transaction completing, when everything is done
  transaction.oncomplete = (event) => {
    note.appendChild(document.createElement("li")).textContent =
      "Transaction completed.";
  };

  transaction.onerror = (event) => {
    note.appendChild(document.createElement("li")).textContent =
      `Transaction not opened due to error: ${transaction.error}`;
  };

  // create an object store on the transaction
  const objectStore = transaction.objectStore("toDoList");

  // Make a request to get a record by key from the object store
  const objectStoreRequest = objectStore.get("Walk dog");

  objectStoreRequest.onsuccess = (event) => {
    // report the success of our request
    note.appendChild(document.createElement("li")).textContent =
      "Request successful.";

    const myRecord = objectStoreRequest.result;
  };
}

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

Спецификация
Indexed Database API 3.0
# ref-for-dom-idbobjectstore-get①

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

Десктоп Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
get 23 12 10 15 8 25 22 14 8 1.5 4.4

См. также

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

© 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/IDBObjectStore/get

Spec-Zone.ru

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