我正在处理Chrome Storage API的扩展程序,我不确定如何正确处理存储大小限制。
假设我有一个不断增长的数组(another question我对性能有所了解)。我需要检查一下我是否空间不足。我知道我可以比较the actual size和QUOTA_BYTES以及许多其他类似的属性。
关于不断增长的阵列,我想到了两个选择:
chrome.storage.{StorageArea}.set()
被解雇时,我可以检查是否有错误。然后我会检查我是否已经没有存储并做了些什么。也许我应该考虑使用索引来实现某种FIFO队列。这些是我的get
和push
函数,其中我不确定如何实现失败回调函数,也不重新设计数组增长的方式。
var storageArea = chrome.storage.sync;
var storageArray = {
get: function(key, callback) {
storageArea.get(key, function(obj) {
var values = obj.hasOwnProperty(key) ? obj[key] : [];
callback(values);
})
},
push: function(key, value, success, fail) {
storageArea.get(key, function(obj) {
var values = obj.hasOwnProperty(key) ? obj[key] : [];
values.push(value);
var thekey = key;
var myobj = {}
myobj[key] = values;
storageArea.set(myobj, function() {
if (chrome.runtime.lastError)
typeof fail === 'function' && fail(chrome.runtime.lastError);
else
typeof success === 'function' && success();
});
});
}
}