IDBKeyRange: upperBound() 静态方法
注意:此功能在 Web Workers 中可用。
upperBound() 静态方法是 IDBKeyRange 接口的一部分,用于创建一个新的上界键范围。默认情况下,它包含上界值,且该界是封闭的。
语法
js
IDBKeyRange.upperBound(upper)
IDBKeyRange.upperBound(upper, open)
参数
返回值
IDBKeyRange: 新创建的键范围。
异常
DataErrorDOMException-
如果
upper参数关联的键不是有效键,则抛出此错误。
示例
下面的示例说明了如何使用上界键范围。在此,我们声明 keyRangeValue = IDBKeyRange.upperBound("F"); — 这是一个包含值 "F" 及其之前所有值的范围。我们打开一个事务(使用 IDBTransaction)和一个对象存储,并通过 IDBObjectStore.openCursor 打开一个游标,将 keyRangeValue 声明为其可选的键范围值。
如果我们使用 IDBKeyRange.upperBound("F", true);,则该范围将排除 "F";而只包含它之前的值。
注意:有关一个更完整的示例,允许您尝试键范围,请查看我们的 IDBKeyRange-example 仓库(也可以 在线查看示例)。
js
function displayData() {
const keyRangeValue = IDBKeyRange.upperBound("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-upperbound① |
浏览器兼容性
加载中…
另见
- 使用 IndexedDB
- 开始事务:
IDBDatabase - 使用事务:
IDBTransaction - 设置键的范围:
IDBKeyRange - 检索和修改数据:
IDBObjectStore - 使用游标:
IDBCursor - 参考示例:待办事项通知(查看实时示例)。