Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.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
Javascript 捕获配额\u超过\u本地存储上的错误_Javascript_Html_Error Handling_Local Storage - Fatal编程技术网

Javascript 捕获配额\u超过\u本地存储上的错误

Javascript 捕获配额\u超过\u本地存储上的错误,javascript,html,error-handling,local-storage,Javascript,Html,Error Handling,Local Storage,我正在使用html5的本地存储API 我想捕获配额\u已超出\u ERR,以便向用户显示一条消息,如“内存已满。无法保存。可能会删除一些项目?” 我将使用的代码如下 function save() { try { localStorage.setItem(key, name); } catch (e) { if (e.name === 'QUOTA_EXCEEDED_ERR') { alert("Memory is full

我正在使用html5的本地存储API

我想捕获
配额\u已超出\u ERR
,以便向用户显示一条消息,如“内存已满。无法保存。可能会删除一些项目?”

我将使用的代码如下

function save() {
    try {
        localStorage.setItem(key, name);
    } catch (e) {
        if (e.name === 'QUOTA_EXCEEDED_ERR') {
            alert("Memory is full. Cannot save. Maybe delete a few items?");
        } else {
            alert("Something went wrong? Try again later?")
        }
    }
}
我想问你,这样可以吗?这对所有浏览器都适用吗?不管怎么说,工作正常还是坏了


当然我也在测试它,但我想我应该问一下,因为也许我遗漏了什么

e.name
对于超出配额的错误,在每个浏览器中不一定总是
“quota\u extended\u ERR”

在某些FF版本中,可能是“NS\U错误\U DOM\U配额已达到”

可能是
“QuoteExceedeError”
“W3CException\u DOM\u QUOTA\u extered\u ERR”
,具体取决于IE浏览器版本/模式


但是,您仍在捕获错误。因此,最糟糕的情况是,用户将收到“出错?”警报,而不是“内存已满”警报。

您最好使用“磁盘存储”而不是“内存”,因为它更清晰“内存”通常代表RAM,而不是持久存储