IDBKeyRange: bound() 静态方法
注意:此功能在 Web Workers 中可用。
bound() 静态方法是 IDBKeyRange 接口的一个方法,用于创建具有指定上限和下限的新键范围。边界可以是开放的(即,边界不包含端点值)或闭合的(即,边界包含端点值)。默认情况下,边界是闭合的。
语法
js
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 参数没有传递有效键。
- lower 键大于 upper 键。
- lower 键和 upper 键匹配,并且任一边界是开放的。
示例
以下示例说明了如何使用边界键范围。在此,我们声明 keyRangeValue = IDBKeyRange.bound("A", "F"); — 一个介于 "A" 和 "F" 之间(包括 "A" 和 "F")的范围。我们打开一个事务(使用 IDBTransaction)和对象存储,并使用 IDBObjectStore.openCursor 打开一个游标,将 keyRangeValue 声明为其可选的键范围值。这意味着游标将只检索该范围内的记录。此范围包括 "A" 和 "F" 的值,因为我们没有声明它们应该是开放边界。如果我们使用 IDBKeyRange.bound("A", "F", true, true);,那么范围将不包括 "A" 和 "F",而只包括它们之间的值。
注意: 有关更完整的示例,允许您尝试键范围,请查看 indexeddb-examples 仓库中的 idbkeyrange 目录。(也可以 实时查看示例。
js
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① |
浏览器兼容性
加载中…
另见
- 使用 IndexedDB
- 开始事务:
IDBDatabase - 使用事务:
IDBTransaction - 设置键的范围:
IDBKeyRange - 检索和修改数据:
IDBObjectStore - 使用游标:
IDBCursor - 参考示例:待办事项通知(查看实时示例)。