Spec-Zone.ru › Web APIs

IDBИндекс: метод get()

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

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

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

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

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

Если значение найдено, то его структурированный клон создаётся и устанавливается в качестве result объекта запроса: это возвращает запись, связанную с ключом.

Синтаксис

get()
get(key)

Параметры

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

Ключ или IDBKeyRange, который идентифицирует запись, подлежащую извлечению. Если это значение равно null или отсутствует, браузер будет использовать неопределённый диапазон ключей.

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

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

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

Исключения

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

TransactionInactiveError DOMException

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

DataError DOMException

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

InvalidStateError DOMException

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

Примеры

В следующем примере мы открываем транзакцию и хранилище объектов, затем получаем индекс lName из простой базы данных контактов. Затем мы открываем базовый курсор на индексе с помощью IDBIndex.openCursor — это работает так же, как открытие курсора непосредственно на ObjectStore с помощью IDBObjectStore.openCursor, за исключением того, что возвращаемые записи сортируются по индексу, а не по первичному ключу.

Затем используется myIndex.get('Bungle') для извлечения записи с lName Bungle, и результат этого запроса регистрируется в консоли, когда возвращается функция обратного вызова успеха.

Наконец, мы проходим по каждой записи и вставляем данные в таблицу HTML. Для получения полных примеров см. нашу демо-репозиторий IndexedDB-examples (посмотреть пример в браузере).

function displayDataByIndex() {
  tableEntry.textContent = "";
  const transaction = db.transaction(["contactsList"], "readonly");
  const objectStore = transaction.objectStore("contactsList");

  const myIndex = objectStore.index("lName");
  const getRequest = myIndex.get("Bungle");
  getRequest.onsuccess = () => {
    console.log(getRequest.result);
  };

  myIndex.openCursor().onsuccess = (event) => {
    const cursor = event.target.result;
    if (cursor) {
      const tableRow = document.createElement("tr");
      for (const cell of [
        cursor.value.id,
        cursor.value.lName,
        cursor.value.fName,
        cursor.value.jTitle,
        cursor.value.company,
        cursor.value.eMail,
        cursor.value.phone,
        cursor.value.age,
      ]) {
        const tableCell = document.createElement("td");
        tableCell.textContent = cell;
        tableRow.appendChild(tableCell);
      }
      tableEntry.appendChild(tableRow);

      cursor.continue();
    } else {
      console.log("Entries all displayed.");
    }
  };
}

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

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

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для 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
  • Пример ссылки: Уведомления о задачах (посмотреть пример в браузере).

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

Spec-Zone.ru

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