尝试将对象保存到存储时,我收到 QUOTA_BYTES_PER_ITEM 配额超出错误,但我对大小的预检查通过了。我确定我在这里犯了某种基本错误(这是检查对象大小的有效方法吗?)。我已经用 LZString 压缩了我想保存的项目,但无论如何,它似乎比配额小得多。
var objToSave = {};
objToSave[myKey] = compressedObj;
console.log("Size of obj is: " + JSON.stringify(objToSave).length); //prints 3452
console.log(chrome.storage.sync.QUOTA_BYTES_PER_ITEM); //prints 8192
if (JSON.stringify(objToSave).length >= (chrome.storage.sync.QUOTA_BYTES_PER_ITEM)) { // this never triggers
alert('objToSave is too large!');
return;
}
chrome.storage.sync.set(objToSave, function() {
if (chrome.runtime.lastError) { // this error gets triggered.
console.log("Error: " + chrome.runtime.lastError.message); // this error gets triggered.
return customAlert("Error!: " + chrome.runtime.lastError.message);
}
});