[英]Error handling "Out of Memory Exception" in browser?
我正在调试一个使用大量内存的 javascript/html5 Web 应用程序。 有时我会在控制台窗口中收到一条错误消息说
"uncaught exception: out of memory".
有没有办法让我在应用程序内优雅地处理这个错误?
最终,我需要重写其中的一部分,以防止这种情况发生。
您应该计算 localStorage 的大小,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;
}
最近在处理具有大量 JS 并发送 Json 的项目时,我也收到了相同的错误消息,但我发现的解决方案是将 input type="submit" 属性更新为 input type="button"。 我知道使用 input type="button"..> 有一些限制,而且解决方案看起来很奇怪,但是如果您的应用程序有带有 JS,Json 数据的 ajax,您可以尝试一下。 谢谢。
在 Firefox 中遇到了同样的问题,后来我才知道我试图重新加载 HTML 页面,甚至在将一些数据设置到 if 循环内的本地存储之前。 所以你需要照顾那个,并检查某个地方的 ID 是否重复。
但同样的事情在 Chrome 中运行良好。 也许 Chrome 更智能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.