IDBCursor.direction - Web API 接口参考 编辑
IDBCursor
的方向属性是一个 DOMString
,表示游标遍历的方向, (比如可以通过 IDBObjectStore.openCursor
设置). 查看下文中 Values 章节获取可取值.
语法
cursor.direction;
取值
用一个字符串(defined by the IDBCursorDirection
enum) 表示游标的遍历方向。相关取值如下表所示:
Value | Description |
---|---|
next | 从数据源开始位置遍历 |
nextunique |
从数据源开始遍历;当取值有重复时,只获取一次。 |
prev | 从数据源的最后位置位置开取值 |
prevunique | 从数据源的最后位置开始取值,只获取一次。 |
例子
在这个简单的例子中,我们首先创建一个事物对象,返回一个对象仓库(store), 然后使用邮编遍历整个数据仓库。在每次迭代中我们记录了游标的方向,例如prev(倒序遍历)
prev
注意:我们不能改变游标的取值,因为这是个只读属性;应该在IDBObjectStore.openCursor
方法调用的第二个参数指定游标遍历的方向;
使用游标遍历数据时,可以不需要我们指定在特定字段选择数据;我们可以直接获取所有数据,同时在每次循环迭代过程当中,我们可以通过cursor.value.foo获取数据,如下是一个完整的游标遍历数据的例子; IDBCursor example (view example live.)
function backwards() {
list.innerHTML = '';
var transaction = db.transaction(['rushAlbumList'], 'readonly');
var objectStore = transaction.objectStore('rushAlbumList');
objectStore.openCursor(null,'prev').onsuccess = function(event) {
var cursor = event.target.result;
if(cursor) {
var listItem = document.createElement('li');
listItem.innerHTML = '<strong>' + cursor.value.albumTitle + '</strong>, ' + cursor.value.year;
list.appendChild(listItem);
console.log(cursor.direction);
cursor.continue();
} else {
console.log('Entries displayed backwards.');
}
};
};
Specifications
Specification | Status | Comment |
---|---|---|
Indexed Database API direction | Recommendation |
浏览器兼容性
We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 23webkit 24 | 10 moz 16.0 (16.0) | 10, partial | 15 | 7.1 |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | 4.4 | 22.0 (22.0) | 1.0.1 | 10 | 22 | 未实现 |
参考资料
- Using IndexedDB
- Starting transactions:
IDBDatabase
- Using transactions:
IDBTransaction
- Setting a range of keys:
IDBKeyRange
- Retrieving and making changes to your data:
IDBObjectStore
- Using cursors:
IDBCursor
- Reference example: To-do Notifications (view example live.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论