Javascript indexeddb:如何获取请求结果和游标值
关于indexeddb操作的两个问题Javascript indexeddb:如何获取请求结果和游标值,javascript,indexeddb,Javascript,Indexeddb,关于indexeddb操作的两个问题 从idb请求中获得结果的可靠方法是什么。我看到两个From var cursor=request.result var cursor=event.target.result 对于所有请求,它们是否总是给出相同的结果 二,。 index.openCursor返回的游标上是否有值属性。在一个例子中,我看到它在W3C规范中的一个地方被使用 [report(cursor.value.isbn, cursor.value.title, cursor.value.aut
var cursor=request.result代码>
var cursor=event.target.result代码>
对于所有请求,它们是否总是给出相同的结果
二,。
index.openCursor
返回的游标上是否有值
属性。在一个例子中,我看到它在W3C规范中的一个地方被使用
[report(cursor.value.isbn, cursor.value.title, cursor.value.author);][3]
有没有一个地方说我可以使用它。1)一般来说,所有的请求都有结果。根据请求的不同,有不同类型的请求(例如IDBOpenDBRequest
和游标请求)和各种方式来访问对象,例如IDBDatabase
和IDBObjectStore
<代码>事件.目标.结果
只是一个例子
例如:
*IDBIndex
将在objectStore
处有一个IDBIObjectStore
*使用IDBObjectStore
可以在transaction
找到对IDBTransaction
的引用
*在IDBTransaction
上,将有一个带有IDBDatabase
的db
属性
*IDBOpenDBRequest
将在result
属性上具有其IDBDatabase
除了event.target
之外,您还可以找到一个event.source
来携带这些对象和引用
各种类型的IDB对象可以显示为目标
,因此事件.target.result
将根据所使用的方法而变化。它甚至取决于所使用的回调:来自游标请求的成功
回调将生成IDBCursorWithValue
作为event.target.result
(请求为目标),而完成
事件则没有任何结果
2) 通常只有IDBCursorWithValue
请求具有值。存在各种不产生值的请求,甚至包括某些类型的无值游标请求
更新:一个IDBRequest
在请求时将有一个IDBCursorWithValue
。result
和它的游标值通常(但不总是)在请求时。result.value
(除了无值游标,我怀疑你是否会使用它)request
由方法同步返回(我首选的获取引用的方法)或通过event.target
获得(有点混乱)。看看这个。它被条目重复使用。删除、条目。获取和条目。更新,应该为您指明正确的方向。我的库是可读的,并且实现为spec w/exception,它的webkitGetDatabaseNames
支持。+1谢谢。你能帮我浏览一下openCursor
的规范吗。对于该操作,如何获取光标。规范说,这个方法创建一个游标。光标必须实现IDBCursorWithValue接口
。但是,我在哪里可以看到光标将位于event.target.result
,或者位于requ
est.result`。我就快到了:-)很高兴你能完成。一旦你有了它,它将是一个有价值的API。更新了我的答案。再次感谢。我希望我看到了你们的图书馆,就像我做的一样,一个基于承诺的包装器。我将进一步评估dashdb,因为我确信它更加完美。再次感谢。我的库经过了很好的测试,今天应该可以使用了。但我正在开发Web Worker和开发者API。我将在五月底前把图书馆准备好。我希望得到你的反馈和帮助。欲了解更多IDB信息-实际上有相当多的IDB人员在附近闲逛。我不确定我看的位置是否正确,但在文档中,我看不到在哪里提供onupgradeneeded
cb所需的配置。例如,我创建所有存储,并为每个存储创建createIndex
。在dashdb
中,我可以设置索引以便查询它们。