indexeddb中add和put的区别是什么?

35

我刚开始使用indexeddb并转换Web SQL。

我试着使用add和put向数据存储中添加一些数据,但我并没有真正看出使用这两个函数的区别。

我认为我必须知道两者之间的区别,以便适当地使用它们。

谢谢提前


这个问题似乎不属于讨论范围。 - Josh
11
请问为什么这个问题不符合主题?它是一个具体的问题。 - amol01
3
这是一个好问题,因为如果您没有正确设置错误处理,当键已经存在时,add 失败并不会立即显而易见。此外,put 也会添加,这一点也不清楚。 - Corey Alix
1个回答

47

add和put之间的差异与任何API中的相同。

如果您尝试使用put函数插入已存在键的元素,它将触发现有元素的更新,然而,如果您使用add函数且具有相同id的元素已存在,则会收到以下消息的错误:“密钥已存在于对象存储中。”


13
完全同意,我认为值得一提的是,“put”不仅可以更新现有的键值对,而且如果给定的键不存在,它还可以添加新的键值对。 - azatprog
2
使用put既可以创建记录,也可以更新记录,那么为什么还要使用add呢? - martian17
5
@Y.Yoshii 如果你想进行安全加法(不替换添加),这将非常有用。无需编写检查键是否已存在的额外逻辑,add() 将为您完成。 - ManSamVampire

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接