首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在localStorage上捕获QUOTA_EXCEEDED_ERR

在localStorage上捕获QUOTA_EXCEEDED_ERR
EN

Stack Overflow用户
提问于 2013-10-25 03:33:40
回答 2查看 5.5K关注 0票数 5

我使用的是html5的localStorage API。

我想要捕获QUOTA_EXCEEDED_ERR,这样我就可以向用户显示一条消息,比如“内存已满。无法保存。也许可以删除几个项目?”

我将使用的代码如下

代码语言:javascript
复制
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?")
        }
    }
}

我想问你,这样可以吗?这对所有浏览器都适用吗?不管怎么说,是正常工作还是崩溃?

当然,我也在测试它,但我想无论如何我都应该问一下,因为我可能遗漏了什么。

EN

回答 2

Stack Overflow用户

发布于 2014-04-30 04:55:56

在每个浏览器中,超出配额错误的e.name不一定都是"QUOTA_EXCEEDED_ERR"

在FF http://chrisberkhout.com/blog/localstorage-errors/的某些版本中,它可能是"NS_ERROR_DOM_QUOTA_REACHED"

可以是"QuotaExceededError""W3CException_DOM_QUOTA_EXCEEDED_ERR",具体取决于IE浏览器版本/模式http://msdn.microsoft.com/en-us/library/ie/cc197050(v=vs.85).aspx

但是,您仍然可以捕获错误。所以最坏的情况是用户会得到“哪里出了问题?”警报与“内存已满”警报。

票数 8
EN

Stack Overflow用户

发布于 2019-06-17 21:54:15

你最好使用“磁盘存储”而不是“内存”,因为它更清晰。“‘Memory”更多地代表RAM,而不是持久性存储

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19574966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档