浏览器是否可以对可以存储在JavaScript对象中的数据量实施任何限制?如果是这样,有没有办法检测到这个限制?
看来默认情况下,Firefox不会:
var data;
$("document").ready(function() {
data = [];
for(var i = 0; i < 100000000000; i++) {
data.push(Math.random());
}
});
Run Code Online (Sandbox Code Playgroud)
在我的系统耗尽之前,这会继续消耗越来越多的内存.
由于我们无法检测可用内存,有没有其他方法可以告诉我们接近这个限制?
更新
我正在开发的应用程序依赖于非常快的响应时间可用(它是核心卖点).不幸的是,它也有一个非常大的数据集(在较弱的客户端机器上将超过内存).通过战略性地预先加载数据(猜测将被点击的内容),可以大大提高性能.当猜测不正确时,从服务器加载数据的后退工作正常,但服务器往返不理想.利用每一点内存,我可以使应用程序尽可能高效.
现在,它可以让用户"配置"他们的性能设置(最大数据设置),但用户不想管理它.此外,由于它是一个Web应用程序,我必须处理每台计算机的用户设置(因为强大的桌面比旧的iPhone有更多的内存).如果它只是对系统上可用的设置使用最佳设置,那就更好了.但是猜太高也会导致客户端计算机出现问题.
javascript ×1