IDBCursor:direction 属性
注意:此功能在Web Workers中可用。
direction
是 IDBCursor
接口的只读属性,它是一个字符串,返回游标的遍历方向(例如,使用 IDBObjectStore.openCursor
设置)。有关可能的值,请参阅下面的 值 部分。
值
一个指示游标遍历数据方向的字符串。可能的值有
next
-
此方向导致游标在源的开头打开。
nextunique
-
此方向导致游标在源的开头打开。对于每个具有重复值的键,仅返回第一个访问的记录(最接近开头的记录)。
prev
-
此方向导致游标在源的结尾打开。
prevunique
-
此方向导致游标在源的结尾打开。对于每个具有重复值的键,仅返回第一个访问的记录(最接近结尾的记录)。
示例
在这个简单的片段中,我们创建一个事务,检索一个对象存储,然后使用游标迭代对象存储中的所有记录。在每次迭代中,我们记录游标的方向。
注意:我们无法使用 direction
属性更改游标的遍历方向,因为它只读。我们使用 IDBObjectStore.openCursor
的第二个参数指定遍历方向。
游标不需要我们根据键选择数据;我们可以直接获取所有数据。另请注意,在循环的每次迭代中,您可以使用 cursor.value.foo
从游标对象下的当前记录中获取数据。有关完整的示例,请参阅我们的 IDBCursor 示例(查看示例)。
js
function backwards() {
list.textContent = "";
const transaction = db.transaction(["rushAlbumList"], "readonly");
const objectStore = transaction.objectStore("rushAlbumList");
objectStore.openCursor(null, "prev").onsuccess = (event) => {
const cursor = event.target.result;
if (cursor) {
const listItem = document.createElement("li");
listItem.textContent = `${cursor.value.albumTitle}, ${cursor.value.year}`;
list.appendChild(listItem);
console.log(cursor.direction);
cursor.continue();
} else {
console.log("Entries displayed backwards.");
}
};
}
规范
规范 |
---|
Indexed Database API 3.0 # ref-for-dom-idbcursor-direction① |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。
另请参阅
- 使用 IndexedDB
- 启动事务:
IDBDatabase
- 使用事务:
IDBTransaction
- 设置键范围:
IDBKeyRange
- 检索和修改您的数据:
IDBObjectStore
- 使用游标:
IDBCursor
- 参考示例:待办事项通知(查看示例)。