簡體   English   中英

邊緣擴展chrome.storage.local 1MB限制

[英]Edge extendsion chrome.storage.local 1MB limit

將現有的擴展程序從chrome移植到邊緣,我在chrome.storage.local的1mb限制上遇到了問題。 我在本主題中使用的函數在JavaScript中字節為單位的字符串長度來查找字符串的大小,並發現json字符串是否超過1mB,它將拋出“超過1mB”異常,但是如果json字符串在250kB和1mB之間,在chrome.runtime.lastError中收到一條消息,指出數據超過1mB,不會引發異常,也不會存儲數據。

我嘗試切換到browser.storage,但得到的結果相同。 這是錯誤還是我使用的字節大小函數錯誤?

另外,我正在使用lz-string壓縮數據以嘗試增加存儲量。

tmp = JSON.stringify(tmp);
tmpAsString = LZString.compressToUTF16(tmp);

var compresskey = 'compressedJSExtension';
try {
    chrome.storage.local.set({[compresskey] : tmp }, function () {
        if (chrome.runtime.lastError) console.error(chrome.runtime.lastError);
    });
}
catch (f) {     
    //Handle if the string is over 1mB

}

根據擴展API路線圖( https://docs.microsoft.com/zh-cn/microsoft-edge/extensions/api-support/extension-api-roadmap),Microsoft Edge支持內部版本14986及更高版本中的unlimitedStorage權限(目前僅適用於Windows Insiders,盡管Windows 10 Creators Update啟動后將公開提供)。 使用它應該可以避免1MB的大小限制,但是由於Edge的名稱空間是browser ,因此您必須將以上代碼更改為browser.storage.local

如果您需要注冊Windows Insider Preview程序,可以在這里進行注冊: https : //insider.windows.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM