Zo7*_*o72 8 javascript memory large-data-volumes cross-browser
让我们立即明确:这不是关于内存泄漏的问题!我有一个页面,允许用户输入一些数据和JavaScript来处理这些数据并产生结果.JavaScript在DIV上生成增量输出,如下所示:
(function()
{
var newdiv = document.createElement("div");
newdiv.innerHTML = produceAnswer();
result.appendChild(newdiv);
if (done) {
return;
} else {
setTimeout(arguments.callee, 0);
}
})();
Run Code Online (Sandbox Code Playgroud)
在某些情况下,计算将生成如此多的数据,IE8将失败并显示以下消息:
处理太多数据时没有足够的存储空间
问题是:有没有办法计算出数据量过多的数据?
正如我所说,没有错误可以解决.这是一个真正的内存不足,因为计算需要创建太多的html元素.
我的想法是在执行计算之前运行一个函数,以便在浏览器成功时提前计算.但要这样做,通用的方式,我认为我需要找到我的浏览器可用的内存.
任何建议都是受欢迎的.
Javascript(在浏览器中)在沙箱中运行,这意味着它可以防止访问可能导致安全问题的事情,例如本地文件,系统资源等 - 所以不,你无法检测内存使用情况.
正如其他答案所述,您可以通过在实现之间暂停或使用资源较少的代码来使浏览器的任务更容易,但每个浏览器都有其限制.