Spec-Zone.ru › Web APIs

IDBCursor

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

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

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

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

Примечание: Не следует путать с IDBCursorWithValue, которая является просто интерфейсом IDBCursor с дополнительным свойством value.

Интерфейс IDBCursor API IndexedDB представляет собой указатель для перебора или итерации по нескольким записям в базе данных.

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

Вы можете иметь неограниченное количество указателей одновременно. Вы всегда получаете тот же объект IDBCursor , представляющий данный указатель. Операции выполняются на базовом индексе или объектовом хранилище.

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

Примечание: IDBCursorWithValue — это интерфейс IDBCursor с дополнительным свойством value.

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

Возвращает IDBObjectStore или IDBIndex, по которому выполняется итерация указателя. Эта функция никогда не возвращает null и не выбрасывает исключение, даже если указатель выполняет итерацию, достигнул конца, или его транзакция неактивна.

IDBCursor.direction Только для чтения

Возвращает направление перебора указателя.

IDBCursor.key Только для чтения

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

IDBCursor.primaryKey Только для чтения

Возвращает текущий эффективный первичный ключ указателя. Если указатель выполняет итерацию или вышел за пределы своего диапазона, это значение устанавливается в undefined. Первичный ключ указателя может быть любого типа данных.

IDBCursor.request Только для чтения

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

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

IDBCursor.advance()

Устанавливает количество раз, на которое указатель должен переместиться вперёд.

IDBCursor.continue()

Перемещает указатель к следующей позиции в заданном направлении, к элементу, чей ключ соответствует необязательному параметру key.

IDBCursor.continuePrimaryKey()

Устанавливает указатель на заданный индексный ключ и первичный ключ, указанные в качестве аргументов.

IDBCursor.delete()

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

IDBCursor.update()

Возвращает объект IDBRequest и обновляет значение в текущей позиции указателя в объектовом хранилище в отдельном потоке. Это можно использовать для обновления конкретных записей.

Константы

Устарело: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её поддерживать, она, возможно, уже удалена из соответствующих веб-стандартов, может быть в процессе удаления или может поддерживаться только для совместимости. Избегайте её использования и, если возможно, обновите существующий код; см. таблицу совместимости ниже на этой странице, чтобы принять решение. Имейте в виду, что эта функция может перестать работать в любое время.

Предупреждение: Эти константы больше недоступны — они были удалены в Gecko 25. Вместо них следует использовать строковые константы. (Ошибка Firefox 891944)

  • NEXT: "next" : Указатель отображает все записи, включая дубликаты. Он начинается с нижней границы диапазона ключей и перемещается вверх (монотонно увеличиваясь в порядке ключей).
  • NEXTUNIQUE : "nextunique" : Указатель отображает все записи, исключая дубликаты. Если несколько записей имеют один и тот же ключ, возвращается только первая итерированная запись. Он начинается с нижней границы диапазона ключей и перемещается вверх.
  • PREV: "prev" : Указатель отображает все записи, включая дубликаты. Он начинается с верхней границы диапазона ключей и перемещается вниз (монотонно уменьшаясь в порядке ключей).
  • PREVUNIQUE: "prevunique" : Указатель отображает все записи, исключая дубликаты. Если несколько записей имеют один и тот же ключ, возвращается только первая итерированная запись. Он начинается с верхней границы диапазона ключей и перемещается вниз.

Примеры

В этом простом фрагменте мы создаём транзакцию, получаем объектное хранилище, а затем используем указатель для перебора всех записей в объектовом хранилище. Указателю не нужно выбирать данные на основе ключа; мы можем просто взять их все. Обратите также внимание, что в каждом цикле вы можете получить данные из текущей записи в объекте указателя, используя cursor.value.foo. Для полного рабочего примера см. наш пример IDBCursor (посмотреть пример онлайн.)

function displayData() {
  const transaction = db.transaction(["rushAlbumList"], "readonly");
  const objectStore = transaction.objectStore("rushAlbumList");

  objectStore.openCursor().onsuccess = (event) => {
    const cursor = event.target.result;
    if (cursor) {
      const listItem = document.createElement("li");
      listItem.textContent = `${cursor.value.albumTitle}, ${cursor.value.year}`;
      list.appendChild(listItem);

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

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

Спецификация
Indexed Database API 3.0
# cursor-interface

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

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari в IOS Samsung Internet WebView Android
IDBCursor 2423–57 12 1610–16 4415–44 8 2525–57 22 4314–43 8 1.51.5–7.0 4.4≤37–57
advance 23 12 10 15 8 25 22 14 8 1.5 4.4
continue 23 12 10 15 8 25 22 14 8 1.5 4.4
continuePrimaryKey 58 79 10 45 10.1 58 51 43 10.3 7.0 58
delete 23 12 10 15 8 25 22 14 8 1.5 4.4
direction 23 12 10 15 8 25 22 14 8 1.5 4.4
key 23 12 10 15 8 25 22 14 8 1.5 4.4
primaryKey 23 12 10 15 8 25 22 14 8 1.5 4.4
request 76 79 77 63 15 76 79 54 15 12.0 76
source 23 12 10 15 8 25 22 14 8 1.5 4.4
update 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
  • Пример ссылки: Уведомления задач (просмотреть пример онлайн).

© 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/IDBCursor

Spec-Zone.ru

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