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);
在我的例子中,我需要更新的不是整个值,而是存储对象的一部分 - 所以我将首先获取对象值,更改并保留它。
在语义上 update
比 put
描述得更好,但也许还有其他一些注意事项?关于性能?通过游标更新和put()有什么区别?
put()
和 update()
之间的行为(性能等)没有差异。 update()
方法只是在使用游标进行迭代时提供便利,并且避免必须指定显式键。
使用光标:
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);
在我的例子中,我需要更新的不是整个值,而是存储对象的一部分 - 所以我将首先获取对象值,更改并保留它。
在语义上 update
比 put
描述得更好,但也许还有其他一些注意事项?关于性能?通过游标更新和put()有什么区别?
put()
和 update()
之间的行为(性能等)没有差异。 update()
方法只是在使用游标进行迭代时提供便利,并且避免必须指定显式键。