Chrome的分析器中显示的“获取长度”是什么?

时间:2012-07-25 19:31:45

标签: javascript google-chrome

我有一个大型网页(内部,正在开发中),加载时间过长。具体来说,加载2.3MB HTML页面会在~3s内显示样式内容,然后浏览器会锁定20多秒,然后才能进行交互。

使用Chrome的时间轴我可以看到,这完全归功于脚本在load事件中被启动: Timeline view with 30s of "Scripting" due to Event(load)

然而,当我分析页面加载时,我看到了这一点(点击查看完整尺寸): Profile

在一些没有相关源代码的匿名函数中花费了32.01秒。作为其中的一部分,在函数中花费了18.87秒"得到长度" (也没有相关的源代码)。

什么是get length?有没有关于时间花费的资料来源更好的信息?

1 个答案:

答案 0 :(得分:1)

这是对表单的长度属性(或具有本机长度属性的任何其他DOM元素)的调用。

这是我使用的示例代码

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript" src="js/lib/jquery.js"></script>
    <script type="text/javascript">
        var doStop = false;

        $(function(){
            //recursively append dot-button to the form and show its length    
            function a(counter) {
                var $w = $('#wrapper').append($('<button>.</button>'));
                $('#txt')[0].innerHTML = 'Form length: '+$w[0].length;
                if (!doStop)
                    setTimeout(function(){ a(counter+1)}, 3);
            }

            $('#stopper').click(function(){ doStop = true; });

            a(0); //let's go now
        });
    </script>
</head>
<body>
<button id="stopper">stop it</button>
<div id="txt"> </div>
<form id="wrapper"></form>
</body>
</html>

我在Chrome分析器中获得以下内容:

| 0.08% | 0.08% | get length |

我的下面有一个箭头,可以深入了解函数a()。