Javascript 错误处理“;“内存不足异常”;在浏览器中?
我正在调试一个使用大量内存的javascript/html5 web应用程序。偶尔我会在控制台窗口中收到一条错误消息Javascript 错误处理“;“内存不足异常”;在浏览器中?,javascript,html,angularjs,google-chrome,firefox,Javascript,Html,Angularjs,Google Chrome,Firefox,我正在调试一个使用大量内存的javascript/html5 web应用程序。偶尔我会在控制台窗口中收到一条错误消息 "uncaught exception: out of memory". 我有没有办法在应用程序中优雅地处理这个错误 最终,我需要重新编写部分内容,以防止这种情况发生。您应该计算本地存储的大小, window.localStorage已满 作为一种解决办法,就是尝试添加一些内容 var localStorageSpace = function(){ var allS
"uncaught exception: out of memory".
我有没有办法在应用程序中优雅地处理这个错误
最终,我需要重新编写部分内容,以防止这种情况发生。您应该计算本地存储的大小, window.localStorage已满 作为一种解决办法,就是尝试添加一些内容
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;
}
在Firefox中也遇到了同样的问题,后来我意识到,即使在将一些数据设置到if循环中的本地存储之前,我也在尝试重新加载HTML页面。所以你需要注意这一点,还要检查ID是否重复
但同样的事情在Chrome上也很有效。也许Chrome更智能。我最近在处理一个包含大量JS的项目并发送Json时也收到了同样的错误消息,但我找到的解决方案是将input type=“submit”属性更新为input type=“button”。我知道使用input type=“button”。>会有一些限制,而且这个解决方案看起来很奇怪,但是如果你的应用程序有带有Json数据的ajax,你可以试试。谢谢。FYI,有一个有用的扩展可以帮助解决调试性能问题。你能给我看一下你的代码吗?我稍后会对此进行演示,如果有帮助,请标记为correct。谢谢在ajax调用的情况下,我只是将input type=“submit”更改为input type=“button”,并为我工作