Javascript 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

关于indexeddb操作的两个问题

  • 从idb请求中获得结果的可靠方法是什么。我看到两个From
  • 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
    中,我可以设置索引以便查询它们。