IDBKeyRange:bound() 静态方法
注意:此功能在Web Workers中可用。
bound()
是IDBKeyRange
接口的静态方法,用于创建一个具有指定上下限的新键范围。边界可以是开放的(即边界不包含端点值)或封闭的(即边界包含端点值)。默认情况下,边界是封闭的。
语法
js
IDBKeyRange.bound(lower, upper)
IDBKeyRange.bound(lower, upper, lowerOpen)
IDBKeyRange.bound(lower, upper, lowerOpen, upperOpen)
参数
返回值
IDBKeyRange
:新创建的键范围。
异常
DataError
DOMException
-
当满足以下条件之一时抛出
- lower 或 upper 参数未传递有效的键。
- 下限键大于上限键。
- 下限键和上限键匹配,并且其中一个边界是开放的。
示例
以下示例说明了如何使用绑定键范围。在这里,我们声明 keyRangeValue = IDBKeyRange.bound("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① |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。
另请参阅
- 使用 IndexedDB
- 启动事务:
IDBDatabase
- 使用事务:
IDBTransaction
- 设置键范围:
IDBKeyRange
- 检索和更改数据:
IDBObjectStore
- 使用游标:
IDBCursor
- 参考示例:待办通知(查看实时示例)。