Chrome中的Javascript执行跟踪-如何?


Answers:


88

一种简单的方法是启动Chrome开发者工具,切换到“源”面板,然后单击F8(暂停执行)。这将在第一个执行的JavaScript语句上中断。

另一种方法是为鼠标按下或单击设置事件侦听器断点:在同一“源”面板中,在右侧栏中展开“事件侦听器断点”。展开“鼠标”项,然后检查要中断的事件(例如,“单击”,“鼠标按下”)。然后点击页面,在DevTools中查看JS执行中断。请享用!


多谢!如果我在FCKeditor中选择文本,请单击“鼠标左键单击”,将鼠标移到另一个位置并释放,该怎么办?

我尝试过,但是...仍然无法正常工作...我会尝试一下。谢谢!

1
单击确定,然后检查整个“鼠标”类别以中断所有与鼠标相关的事件侦听器(您可能要取消选中“ mousemove”)。如果仍然无法解决问题,则可以选中所有类别,如果遇到不相关的事件,则可以一一取消选中它们。
亚历山大·帕夫洛夫

1
嗨,我有类似的问题,情况几乎相同,但就我而言,我只想跟踪整个javascript执行...我想看看哪些功能可以正常工作,而不仅仅是暂停或设置断点?诸如traceGL之类的东西……我需要了解网页的工作原理……(我的javascript库现在太大了,因此我需要做一些优化并查找重复的代码……)
2013年

29

暂停执行的替代方法(通常效果很好,但在经常执行定期代码的页面上效果不佳)

您可以使用chrome的探查器在短时间内进行记录。录制完成后,它将向您显示在录制过程中执行的所有功能所花费的cpu时间的摘要。我们并不真正在乎CPU时间,只是使用此工具,因为它将向我们显示执行了哪些功能。

基本上只是开始录制:

注意:在Chrome 58及更高版本中,此标签页已重命名为“内存”。参考

chrome profiler开始按钮

然后执行您的操作(例如,单击网页上的按钮,或执行将导致有趣的代码执行的任何操作)。然后停止记录并查看结果:

分析器结果摘要

注意,我使用的是“自顶向下”查看模式-向您显示调用堆栈,您可以向下钻取以查看最终调用了哪些函数。例如,首先调用了一个匿名函数(可能是setTimeout或某些单击事件处理程序的结果),然后又调用了由其标识的方法s.track.s.t,然后再调用s_doPlugins诸如此类...重要的是在自上而下的模式下,在树的顶部的条目形成一个调用堆栈的开始,所以他们通常是由一些定时器功能注册的功能(setTimeoutsetIntervalrequestAnimationFrame等)或某些事件处理函数(clickmousemoveload,等。 )。

您还可以使用“图表”查看模式,该模式向您显示在哪个时间调用了哪个函数,并从左到右绘制在图表上。这可以帮助您确定您真正要寻找的功能,因为您可能会对录制中代码的执行时间有所了解(例如,在中间)。

顺便说一句-我相信大多数其他现代浏览器都具有类似的功能。


14

我想确定我在Google Chrome浏览器中单击一项或另一项时执行的JavaScript功能。

现在有一个很棒的扩展,叫做Visual Event,可以做到这一点。它仅识别通过流行的js库(jQuery,YUI,MooTools,Prototype,Glow)和DOM Level 0事件设置的事件处理程序。


效果很好。不确定安全性,因此在不进行调试时就放弃了。
MagicLAMP's

2
像扩展容貌得到了取下来:(这并没有在一段时间更新
梅德Pashkevich
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.