如果我想存储chrome扩展程序中的持久数据,我会将对象写入chrome.storage
:
chrome.storage.sync.set({key: value});
据我所知,这意味着我必须将所有扩展程序的数据存储在一个对象中。这很好,但如果我只想更新该数据结构中的一个字段呢?想象一下我的chrome.storage.sync
是
{
friends: [
{ name: "Billy", age: 28 }
],
enemies: [
{ name: "Penny", age: 18 },
{ name: "Mortimer", age: 51 }
]
}
现在假设我想进入并更新Mortimer的年龄。我必须重建整个上面的对象,修改相应的字段,并将整个对象写回存储。我有没有办法只更新一个字段?
答案 0 :(得分:1)
您的问题中的假设不正确:"这意味着我必须将所有扩展程序的数据存储在一个对象中。"
您可以根据需要使用任意数量的对象。例如,朋友列表中的一个键,以及通过某个唯一ID映射到第一个列表的每个朋友的一个键。
使用indexedDb或不推荐使用的web sql会更容易,因为你仍然可能有一些需要完全重新保存的大对象,比如朋友列表。