cursor.update(val) 或 put(val, id)?

cursor.update(val) OR put(val, id)?

使用光标:

indexedDB.open('my-db').onsuccess = event =>
    event.target.result
        .transaction('my-object-store', 'readwrite')
        .objectStore('my-object-store')
        .openCursor(bound).onsuccess = event => {
            event.target.result.update(val)
        }

使用put()

indexedDB.open('my-db').onsuccess = event =>
    event.target.result
        .transaction('my-object-store', 'readwrite')
        .objectStore('my-object-store')
        .put(val, id);

在我的例子中,我需要更新的不是整个值,而是存储对象的一部分 - 所以我将首先获取对象值,更改并保留它。

在语义上 updateput 描述得更好,但也许还有其他一些注意事项?关于性能?通过游标更新和put()有什么区别?

put()update() 之间的行为(性能等)没有差异。 update() 方法只是在使用游标进行迭代时提供便利,并且避免必须指定显式键。