Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome 我可以增加Chrome中每个项目的配额吗?_Google Chrome_Google Chrome Extension - Fatal编程技术网

Google chrome 我可以增加Chrome中每个项目的配额吗?

Google chrome 我可以增加Chrome中每个项目的配额吗?,google-chrome,google-chrome-extension,Google Chrome,Google Chrome Extension,有没有办法增加每个项目的chrome.storage.sync.QUOTA字节数 对我来说,默认的4096字节有点短 我试图处决他 chrome.storage.sync.QUOTA_BYTES_PER_ITEM = 8192; 然而,实际限制似乎没有改变 我怎样才能做到这一点?不,每个项目的配额字节数仅供参考;它不是一个可设置的值。您可以使用每个项目的QUOTA\u BYTES\u值将项目拆分为多个项目,不过: function syncStore(key, objectToStore, c

有没有办法增加每个项目的chrome.storage.sync.QUOTA字节数

对我来说,默认的4096字节有点短

我试图处决他

chrome.storage.sync.QUOTA_BYTES_PER_ITEM = 8192;
然而,实际限制似乎没有改变


我怎样才能做到这一点?

不,
每个项目的配额字节数
仅供参考;它不是一个可设置的值。您可以使用每个项目的
QUOTA\u BYTES\u
值将项目拆分为多个项目,不过:

function syncStore(key, objectToStore, callback) {
    var jsonstr = JSON.stringify(objectToStore);
    var i = 0;
    var storageObj = {};

    // split jsonstr into chunks and store them in an object indexed by `key_i`
    while(jsonstr.length > 0) {
        var index = key + "_" + i++;

        // since the key uses up some per-item quota, see how much is left for the value
        // also trim off 2 for quotes added by storage-time `stringify`
        var valueLength = chrome.storage.sync.QUOTA_BYTES_PER_ITEM - index.length - 2;

        // trim down segment so it will be small enough even when run through `JSON.stringify` again at storage time
        var segment = jsonstr.substr(0, valueLength);           
        while(JSON.stringify(segment).length > valueLength)
            segment = jsonstr.substr(0, --valueLength);

        storageObj[index] = segment;
        jsonstr = jsonstr.substr(valueLength);
    }

    // store all the chunks
    chrome.storage.sync.set(storageObj, callback);
}

然后编写一个类似的fetch函数,该函数通过键获取对象并将对象粘在一起。

代码中似乎有一个无限循环。请将
循环的最后一行更新为
jsonstr=jsonstr.substr(每个项目的chrome.storage.sync.QUOTA\u字节)
。您还需要一个
i++
。请注意,当chrome检查
chrome.storage.sync.QUOTA\u BYTES\u PER\u ITEM
时,它会计算要保存的值的长度以及密钥的长度。因此,在使用
substr
@KonradDzwinel时,您需要使用类似于
chrome.storage.sync.QUOTA\u BYTES\u PER\u ITEM-currentKeyLength的东西,正如您所知,这只是我作为概念证明而拼凑起来的东西。感谢您的反馈;我已将您的请求更改在代码中生效。前两个错误是明显的粗心错误,但我没有考虑密钥的大小——这是文档中的某个地方记录的,还是您自己发现的(或者您是Chromium开发人员)?我发现您的代码只是一个指南,但因为我使用了它,所以我报告了所有错误。至于键的长度,它是。然而,我发现由于未知的原因(我已经创建了),我不得不再减去2个字节。我已经为我的扩展创建了一个,用于从
chrome.storage.sync
中保存和检索每项长度超过
QUOTA\u字节的字符串。我的代码基于@apsillers提供的代码片段。注意:从2016年1月15日起,每个项目的配额字节(默认)值现在是8K。