Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么是domjs内存容量?_Javascript_Json_Memory Management - Fatal编程技术网

Javascript 什么是domjs内存容量?

Javascript 什么是domjs内存容量?,javascript,json,memory-management,Javascript,Json,Memory Management,我想知道是否有人知道dom的限制,例如 如果我有一个json对象 var json={} 这个json对象内部有自己的对象,包括数组、其他对象或事件纯文本 如果存在限制,那么json可以容纳多少子对象?如果对象的大小动态增加,这会显示错误吗?因为没有更多的内存来处理它等等。根据JS、DOM或JSON的标准,在这种情况下没有限制 如果有任何限制,它高度依赖于实现,应该在浏览器(或js引擎)文档中检查。我知道的唯一限制是V8(Chrome的JS引擎)中的heap容量为1.8GB。我不相信有硬限制,但

我想知道是否有人知道dom的限制,例如

如果我有一个json对象

var json={}

这个
json
对象内部有自己的对象,包括数组、其他对象或事件纯文本


如果存在限制,那么
json
可以容纳多少子对象?如果对象的大小动态增加,这会显示错误吗?因为没有更多的内存来处理它等等。

根据JS、DOM或JSON的标准,在这种情况下没有限制


如果有任何限制,它高度依赖于实现,应该在浏览器(或js引擎)文档中检查。我知道的唯一限制是V8(Chrome的JS引擎)中的heap容量为1.8GB。

我不相信有硬限制,但我很好奇会发生什么,所以我编写了一个临时测试脚本:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <script language="javascript">
            window.onload = function() {
                var data = [];
                var i = 0;

                var addData = function() {
                    var arr = [];
                    i++;

                    for(var j=0; j<10000; j++) {
                        arr.push({
                            id: i + j,
                            name: "item" + j,
                            number: i * j,
                            date: new Date(),
                            email: "long_email" + i + "@domain" + j + ".com"
                        });
                    }

                    data.push(arr);
                    document.getElementById("result").innerHTML = i.toString();
                    window.setTimeout(addData, 1);
                };

                addData();
            };
        </script>
    </head>
    <body>
        <div id="result"></div>
    </body>
</html>

window.onload=函数(){
var数据=[];
var i=0;
var addData=函数(){
var-arr=[];
i++;

对于(var j=0;jIf有一个限制,它可能比您实际需要的要大得多。很好,我的脚本使用ajax增加了。我刚刚有一个非常大的页面,我想问一下,以防我需要了解未来的项目:)