Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/146.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 AngularJS渲染需要大量时间_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS渲染需要大量时间

Javascript AngularJS渲染需要大量时间,javascript,angularjs,Javascript,Angularjs,我有一个模型是这样的: { "items": [ { "type": "A", "id": "2", "number": 0, "info": "info1", "childs": [ { "type": "B", "id": "21",

我有一个模型是这样的:

{
    "items": [
        {
            "type": "A",
            "id": "2",
            "number": 0,
            "info": "info1",
            "childs": [
                {
                    "type": "B",
                    "id": "21",
                    "number": 0,
                    "info": "info1",
                    "childs": []
                }
            ]
        },
        {
            "type": "A",
            "id": "1",
            "number": 0,
            "info": "info1",
            "childs": []
        },
        {
            "type": "A",
            "id": "2",
            "number": 0,
            "childs": [
                {
                    "type": "B",
                    "id": "21",
                    "number": 0,
                    "info": "info1",
                    "childs": [
                        {
                            "type": "C",
                            "id": "211",
                            "number": 0,
                            "info": "info1",
                            "childs": [
                                {
                                    "type": "B",
                                    "id": "2111",
                                    "info": "info1",
                                    "number": 0
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}
通过4个嵌套的
ng repeat
在页面中呈现。属性
number
通过
input=“number”
更改,每行一个。信息值由
选择框更改
结构是这样的

<div ng-repeat="item in items">

    <input type="number" ng-model="item.number" />
    <select ng-model="item.info">
    </select>

    <div ng-repeat="child in items.child">

        <input type="number" ng-model="child.number" />
        <select ng-model="child.info">
        </select>

        <div ng-repeat="child2 in child.child">

            <input type="number" ng-model="child2.number" />
            <select ng-model="child2.info">
            </select>

            <div ng-repeat="child3 in child2.child">

                <input type="number" ng-model="child3.number" />
                <select ng-model="child3.info">
                </select>
            </div>
        </div>
    </div>
</div>

嗯,这并不是真正的网络应用程序,但对你来说已经足够了。无论如何,如果我更改
input=“number”
的值,渲染过程需要1500毫秒才能完成。当我更改
selectbox
selected选项时,也会发生相同的情况(但渲染速度会快一点)。 当我更改值时,我只需要更新模型中项目的属性。为什么要重新进行角度渲染? 我能做什么? 请记住,模型通常包含10/15个项目,每个项目有5到20个子项目

PS:奇怪的是,当我点击微调器(使用Chrome时出现的默认微调器)更改输入值时,数字会增加或减少2,而不是1


编辑:仍然没有解决这个问题。当我有太多的项目显示在屏幕上,所有的渲染过程太慢,四个嵌套的ng重复。是否有人可以在页面中显示我的模型并修改值,而不会在渲染时丢失2秒?我不能使用分页或无限滚动。

我曾尝试在JSFIDLE(此处:)上使用您的代码,但我无法重现您指出的延迟。您可以提供一个JSFIDLE或修改我的JSFIDLE,并提供一个遇到延迟的工作示例吗?此外,您可以尝试搜索其他常见的延迟和处理时间来源,如死掉的事件侦听器、过度使用$watch语句、,等等。你不能复制延迟,因为实际的应用程序比我在这里发布的要复杂和广泛得多。我无法复制和粘贴整个项目。这就是程序中慢的部分的结构,真的很难猜测。您是否已确定信息的渲染时间为1500ms?是否还有其他因素会造成这种延误?可能ajax调用速度较慢,可能在ng repeat中使用数据之前对数据执行了大量转换……我对JDFIDLE做了一些改进,仍然没有看到任何渲染延迟或您提到的输入上的x2增量。也许你可以玩一下小提琴来寻找问题的原因。。。