Spec-Zone.ru › Web APIs

IDBObjectStore: метод openCursor()

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

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

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

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

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

Чтобы определить, завершилась ли операция добавления успешно, прослушайте событие success результата.

Синтаксис

openCursor()
openCursor(query)
openCursor(query, direction)

Параметры

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

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

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

Строка, указывающая курсору направление перемещения. По умолчанию next. Допустимые значения:

next

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

nextunique

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

prev

Курсор открывается в конце хранилища; затем курсор возвращает все записи, включая дубликаты, в порядке убывания ключей.

prevunique

Курсор открывается в конце хранилища; затем курсор возвращает все записи, не являющиеся дубликатами, в порядке убывания ключей.

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

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

Если операция выполнена успешно, значение свойства запроса result равно:

  • объекту IDBCursorWithValue, указывающему на первую запись, соответствующую заданному запросу
  • null если не найдено соответствующих записей.

Исключения

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

InvalidStateError DOMException

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

TransactionInactiveError DOMException

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

DataError DOMException

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

Примеры

В этом простом фрагменте мы создаём транзакцию, получаем объектное хранилище, а затем используем курсор для итерации по всем записям в объектном хранилище:

const transaction = db.transaction("name", "readonly");
const objectStore = transaction.objectStore("name");
const request = objectStore.openCursor();
request.onsuccess = (event) => {
  const cursor = event.target.result;
  if (cursor) {
    // cursor.value contains the current record being iterated through
    // this is where you'd do something with the result
    cursor.continue();
  } else {
    // no more results
  }
};

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

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

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

Рабочие столы Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
openCursor 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/IDBObjectStore/openCursor

Spec-Zone.ru

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