Spec-Zone.ru › Web APIs

IDBCursor: метод advance()

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

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

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

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

Метод advance() интерфейса IDBCursor задаёт количество шагов вперёд для перемещения курсора.

Синтаксис

advance(count)

Параметры

count

Количество шагов вперёд для перемещения курсора.

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

None (undefined).

Исключения

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

TransactionInactiveError DOMException

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

TypeError

Выбрасывается, если значение, переданное в параметр count, равно нулю или отрицательно.

InvalidStateError DOMException

Выбрасывается, если курсор в настоящее время итерируется или прошёл конец перебора.

Примеры

В этом простом фрагменте мы создаём транзакцию, получаем хранилище объектов, а затем используем курсор для итерации по записям в хранилище объектов. Здесь мы используем cursor.advance(2) для перехода на 2 позиции вперёд каждый раз, что означает, что будет отображаться только каждый второй результат. advance() работает аналогично IDBCursor.continue, за исключением того, что позволяет переходить на несколько записей за один раз, а не только на следующую.

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

function advanceResult() {
  list.textContent = "";
  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.advance(2);
    } else {
      console.log("Every other entry displayed.");
    }
  };
}

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

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

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

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

Spec-Zone.ru

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