首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在浏览器中处理“内存不足异常”时出错?

在浏览器中处理“内存不足异常”时出错?
EN

Stack Overflow用户
提问于 2014-09-18 11:18:16
回答 3查看 35.5K关注 0票数 23

我正在调试一个使用大量内存的javascript/html5 web应用程序。有时,我会在控制台窗口中收到一条错误消息

代码语言:javascript
复制
"uncaught exception: out of memory".  

有没有办法让我在应用程序内部优雅地处理这个错误?

最终,我需要重写其中的一部分,以防止这种情况首先发生。

EN

回答 3

Stack Overflow用户

发布于 2015-03-11 20:51:28

你应该计算一下你的localStorage的大小,window.localStorage已经满了

因为一个解决方案是尝试添加一些

代码语言:javascript
复制
var localStorageSpace = function(){
    var allStrings = '';
    for(var key in window.localStorage){
        if(window.localStorage.hasOwnProperty(key)){
            allStrings += window.localStorage[key];
        }
    }
    return allStrings ? 3 + ((allStrings.length*16)/(8*1024)) + ' KB' : 'Empty (0 KB)';
};

var storageIsFull = function () {
    var size = localStorageSpace(); // old size

    // try to add data
    var er;
    try {
         window.localStorage.setItem("test-size", "1");
    } catch(er) {}

    // check if data added
    var isFull = (size === localStorageSpace());
    window.localStorage.removeItem("test-size");

    return isFull;
}
票数 5
EN

Stack Overflow用户

发布于 2015-07-28 16:28:10

我最近也收到了同样的错误消息,当我在一个有很多JS和发送Json的项目上工作时,我发现的解决方案是将输入按钮“type=”属性更新为输入按钮“type=”。我知道使用input type="button"..>有一些限制,而且解决方案看起来很奇怪,但是如果您的应用程序使用带有JS、Json数据的ajax,您可以试一试。谢谢。

票数 5
EN

Stack Overflow用户

发布于 2015-06-18 14:53:45

在Firefox中也遇到了同样的问题,但后来我才知道,甚至在if循环中将一些数据设置到本地存储中之前,我也在尝试重新加载HTML页面。所以你需要注意这一点,同时还要检查ID是否重复。

但同样的事情在Chrome上也运行得很好。也许Chrome更智能。

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

https://stackoverflow.com/questions/25903625

复制
相关文章

相似问题

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