IDBObjectStore.openCursor - Web API 接口参考 编辑
IDBObjectStore
的 openCursor()
方法 返回一个IDBRequest
对象,并在一个单独的线程中,返回一个新的 IDBCursorWithValue
对象。此方法目的是用一个游标来遍历一个对象存储空间。
若要确认此操作是否成功完成,请监听结果的 success
事件。
语法
var request = ObjectStore.openCursor(query, direction);
参数
- query 可选
- 要查询的键或者
IDBKeyRange
。如果传一个有效的键,则会默认为只包含此键的范围。如果此参数不传值,则默认为一个选择了该对象存储空间全部记录的键范围。 - direction 可选
- 一个
IDBCursorDirection
来告诉游标要移动的方向。有效的值有"next"
、"nextunique"
、"prev"
和"prevunique"
。默认值是"next"
。
返回
一个 IDBRequest
对象,在此对象上触发与此操作相关的后续事件。
异常
此方法可能引起以下类型之一的 DOMException
:
异常 | 描述 |
---|---|
InvalidStateError | 此 IDBObjectStore 或IDBIndex 已被删除。 |
TransactionInactiveError | 此 IDBObjectStore 的事务处于非活动状态。 |
DataError | 指定的键或键范围无效。 |
例子
在下面这个简单的片段中,我们创建一个事务,检索一个对象存储空间,然后用一个游标去遍历该对象存储空间的所有记录:
var transaction = db.transaction("name", "readonly");
var objectStore = transaction.objectStore("name");
var request = objectStore.openCursor();
request.onsuccess = function(event) {
var cursor = event.target.result;
if(cursor) {
// cursor.value 包含正在被遍历的当前记录
// 这里你可以对 result 做些什么
cursor.continue();
} else {
// 没有更多 results
}
};
规范
Specification | Status | Comment |
---|---|---|
Indexed Database API openCursor() | Recommendation | |
Indexed Database API 2.0 openCursor() | 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论