同时异步保存到铬无限存储
Simultaneous asynchronous saving to chromes unlimited storage
我正在尝试编写一个涉及使用chrome无限存储空间的Chrome扩展程序。我目前正在从存储中检索,如下所示:
chrome.storage.local.get(null, function (items) {
return items;
}
然后像这样保存回存储:
chrome.storage.local.set(items);
我的问题是在这种情况下,"items"是一个关联数组,我希望能够同时向该数组添加多个值。由于 get 方法是异步的,因此我无法保证尝试调用从存储中获取数组、向其添加键/值对然后将其设置的两个不同进程将导致两者都被保存。更糟糕的是,如果有足够的并发进程,这样做似乎会使扩展崩溃。
有没有更好的方法来使用chrome.storage?还是我必须实现某种排队系统?我以前使用的是没有异步方面的localStorage,但超过了最大存储容量,因此我尝试切换到使用无限存储。
我会继续使用您想到的排队系统。如果两个进程都有权访问全局对象,请让该对象管理写入,并让应用程序的其余部分使用该对象而不是chrome.local.storage.set(...)
进行写入。
两个无限的存储选项
- 铬存储
- window.webkitStorageInfo
两者都是异步的,这在性能方面很好,我想实现多个set
和get
操作的同步是您解决这个问题的方法。
相关文章:
- 结合jQuery和jetpack无限滚动
- 将作用域存储在JSON中
- 使用javascript存储变量的最安全方式
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 如何有效地将游戏数据存储在URL查询字符串中
- Ember.js-接口状态应该存储在哪里
- ng应用程序使脚本无限运行
- 如何解雇“;铁局部存储负载”;事件
- 本地存储中的字符串到字节数组转换
- 从jQuery调用存储在Variable中的函数
- 推荐在JavaScript中执行存储为字符串的函数,而不是使用eval
- 通过另一个php应用程序将我的项目推送到Github存储库中
- 将数据存储在javascript数组中以供进一步使用
- 在页面卸载时写入HTML5 FileSystem API存储
- 加载存储在IndexedDB中的HTML页面
- 在字符串中查找所有图像 src URL 并存储在数组中
- 如何从C#代码背后调用本地存储的javascript函数
- ExtJS 4.1无限网格滚动不适用于使用loadData的动态存储
- 同时异步保存到铬无限存储