处理chrome.storage数组大小限制

时间:2015-04-29 05:08:03

标签: javascript google-chrome google-chrome-extension

我正在处理Chrome Storage API的扩展程序,我不确定如何正确处理存储大小限制。

假设我有一个不断增长的数组(another question我对性能有所了解)。我需要检查一下我是否空间不足。我知道我可以比较the actual size和QUOTA_BYTES以及许多其他类似的属性。

关于不断增长的阵列,我想到了两个选择:

  • chrome.storage.{StorageArea}.set()被解雇时,我可以检查是否有错误。然后我会检查我是否已经没有存储并做了些什么。也许我应该考虑使用索引来实现某种FIFO队列。
  • (我不记得了)

这些是我的getpush函数,其中我不确定如何实现失败回调函数,也不重新设计数组增长的方式。

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();
            });
        });
    }

}

0 个答案:

没有答案