JavaScript性能:如何检查导致页面变慢的原因?

14

我有一个页面非常慢,不是在加载方面,而是在输入表单字段时的响应能力方面非常慢。

该页面上没有ajax——这与网络传输无关。

有哪些有效的策略可以发现代码瓶颈的位置?我在Chrome开发者工具中找不到任何提示告诉我瓶颈在哪里。


https://dev59.com/5HRA5IYBdhLWcg3wtwSe - RightSaidFred
你的Chrome浏览器中没有“个人资料”选项卡吗? - RightSaidFred
2个回答

5

Webkit有一个“配置文件”选项。打开开发者工具(ctrl+shift+i),然后点击“Profiles”。从那里,您可以看到底部的记录按钮(圆形)。单击它,并像平常一样使用您的页面。再次单击以停止并检查函数调用的时间轴!

或者,您可以使用以下方法逐个基准测试功能:

console.time( "Some label" );
console.timeEnd( "Some label" );

3

听起来你的输入框上每次按键都会触发某个事件。

  1. 如果Chrome浏览器的分析器不能满足您的需求,可以尝试使用FireBug或IE9的分析器,后者相当不错。在IE9中,您可以查看每个函数调用花费了多少CPU时间。
  2. 逐个暂时移除字段的处理程序,并观察性能变化。

让我知道进展如何!


1
我认为你说得对,确实有处理程序在触发,但我没有将它们附加到字段上。所有Chrome的时间轴和分析工具显示的只是jquery内部的一些代码正在执行。非常奇怪。 - Marcin
1
很可能是客户端验证触发了。 - Boris Jockov
希望不是这样,我还没有编写任何客户端验证。 - Marcin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接