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: Созданный диапазон ключей.
Исключения
-
DataErrorDOMException -
Выбрасывается, когда выполняется одно из следующих условий:
- Параметры 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.");
}
};
}
Спецификации
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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