4

我正在尝试编写一个涉及使用 chrome 无限存储的 Chrome 扩展程序。我目前正在从这样的存储中检索:

chrome.storage.local.get(null, function (items) {  
    return items;  
}  

然后像这样保存回存储:

chrome.storage.local.set(items);

我的问题是,在这种情况下,“项目”是一个关联数组,我希望能够同时向该数组添加多个值。因为 get 方法是异步的,所以我不能保证两个不同的进程尝试从存储中调用 get 数组,向其中添加一个键/值对然后将其设置回来将导致两者都被保存。更糟糕的是,如果有足够的并发进程,这样做似乎会使扩展程序崩溃。

有没有更好的方法来使用 chrome.storage?还是我必须实施某种排队系统?我以前使用的是 localStorage,它没有异步方面,但是超过了最大存储容量,所以我试图切换到使用无限存储。

4

2 回答 2

0

我会继续使用您想到的排队系统。如果两个进程都可以访问全局对象,则让该对象管理写入,并让应用程序的其余部分使用该对象而不是chrome.local.storage.set(...).

于 2013-01-27T01:17:29.277 回答
0

两个无限存储选项

都是异步的,这在性能方面很好,我想实现多个setget操作的同步是你解决这个问题的方法。

于 2013-01-27T06:32:10.543 回答