我在我的background.html页面中遇到了这个异常。我不知道这个异常的含义。有人能解释一下这个异常并告诉我如何解决吗。
异常的详细信息如下:
Unchecked runtime.lastError while running storage.set: QUOTA_BYTES_PER_ITEM quota exceeded
谢谢。
我在我的background.html页面中遇到了这个异常。我不知道这个异常的含义。有人能解释一下这个异常并告诉我如何解决吗。
异常的详细信息如下:
Unchecked runtime.lastError while running storage.set: QUOTA_BYTES_PER_ITEM quota exceeded
谢谢。
当使用chrome.storage.sync.set函数来设置单个项目的数据时,如果数据大于8192字节,则会出现此错误。因为chrome.storage.sync.set允许的最大值为8192 QUOTA_BYTES_PER_ITEM。
使用chrome.storage.local.set函数来保存大数据,而不是使用chrome.storage.sync.set。
因为chrome.storage.local.set可以包含5242880:QUOTA_BYTES。
请参阅https://developer.chrome.com/extensions/storage。
另外,如果仍然想使用chrome.storage.sync.set函数,可以使用以下代码获取警报:
chrome.storage.sync.set(function() {
var error = chrome.runtime.lastError;
if (error) {
alert(error);
}
});
如果您在使用chrome.storage.local时遇到相同的警告,则:
原因:您尝试存储的数据大于允许的本地存储量,即5242880 QUOTA_BYTES。
解决方案:您可以在manifest.json文件中将权限设置为unlimitedStorage。
"permissions": [
.....
"unlimitedStorage",
.....
],
了解更多关于权限的信息
1) https://developer.chrome.com/extensions/storage#property-managed
2) https://developer.chrome.com/extensions/permission_warnings#nowarning
正如wOxxOm在他的评论中所概述的那样,答案已经在chrome.storage文档中涵盖。
此外,实现错误处理和检查runtime.lastError
总是一个好习惯。如果一切都很好,它将为未定义。如果有问题,它将是非空的,chrome.runtime.lastError.message
将解释出错原因。
Chrome添加了检查chrome.runtime.lastError
是否实际被检查(评估)。如果没有,它认为这是一个未处理的异常,并抛出此错误。
storage ... BYTES_PER_ITEM quota exceeded
" 是指您尝试在单个键下存储过大的对象。 - Teepeemm