Spec-Zone.ru › Web APIs

IDBKeyRange: статический метод bound()

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

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

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

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

Статический метод bound() интерфейса IDBKeyRange создаёт новый диапазон ключей с указанными верхними и нижними границами. Границы могут быть открытыми (то есть границы не включают конечные значения) или закрытыми (то есть границы включают конечные значения). По умолчанию границы закрыты.

Синтаксис

IDBKeyRange.bound(lower, upper)
IDBKeyRange.bound(lower, upper, lowerOpen)
IDBKeyRange.bound(lower, upper, lowerOpen, upperOpen)

Параметры

lower

указывает нижнюю границу нового диапазона ключей.

upper

указывает верхнюю границу нового диапазона ключей.

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

указывает, исключает ли нижняя граница конечное значение. По умолчанию — false.

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

указывает, исключает ли верхняя граница конечное значение. По умолчанию — false.

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

IDBKeyRange: Созданный диапазон ключей.

Исключения

DataError DOMException

Выбрасывается, когда выполняется одно из следующих условий:

  • Параметры lower или upper не содержат допустимого ключа.
  • Нижний ключ больше верхнего ключа.
  • Нижний и верхний ключи совпадают, и хотя бы одна из границ открыта.

Примеры

В следующем примере показано, как использовать диапазон ключей bound. Здесь мы объявляем keyRangeValue = IDBKeyRange.bound("A", "F"); — диапазон между значениями "A" и "F". Мы открываем транзакцию (используя IDBTransaction) и объект хранилища, открываем курсор с помощью IDBObjectStore.openCursor, объявляя keyRangeValue в качестве необязательного значения диапазона ключей. Это означает, что курсор будет извлекать только записи с ключами внутри этого диапазона. Этот диапазон включает значения "A" и "F", так как мы не объявляли их как открытые границы. Если бы мы использовали IDBKeyRange.bound("A", "F", true, true);, то диапазон не включал бы "A" и "F", только значения между ними.

Примечание: Для более полного примера, позволяющего экспериментировать с диапазоном ключей, ознакомьтесь с каталогом idbkeyrange в репозитории indexeddb-examples. (Посмотрите также живой пример здесь).

function displayData() {
  const keyRangeValue = IDBKeyRange.bound("A", "F");

  const transaction = db.transaction(["fThings"], "readonly");
  const objectStore = transaction.objectStore("fThings");

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

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

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

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

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

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

Spec-Zone.ru

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