我有一个大型网页(内部,正在开发中),加载时间过长。具体来说,加载2.3MB HTML页面会在~3s内显示样式内容,然后浏览器会锁定20多秒,然后才能进行交互。
使用Chrome的时间轴我可以看到,这完全归功于脚本在load
事件中被启动:
然而,当我分析页面加载时,我看到了这一点(点击查看完整尺寸):
在一些没有相关源代码的匿名函数中花费了32.01秒。作为其中的一部分,在函数中花费了18.87秒"得到长度" (也没有相关的源代码)。
什么是get length
?有没有关于时间花费的资料来源更好的信息?
答案 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()。