发现哪个JS / jQuery脚本冻结页面的工具或技术

时间:2016-05-16 03:23:48

标签: javascript jquery

使用哪个工具来发现JS / jQuery消耗了太多资源或无限循环?

更具体地说,我对此模板存在问题:http://pages.revox.io/dashboard/latest/html/

在Firefox 46.0.1上打开该页面几分钟后冻结页面。我无法发现哪个JS / jQuery导致Firebug冻结,因为它似乎是一个简单消耗太多资源的脚本,而不是一个简单的冻结永不停止的循环(这会触发“Script XYZ也在采取行动”)长期执行“消息”

1 个答案:

答案 0 :(得分:1)

用于Ubuntu的Firefox 46.0似乎内置了一个非常好的调试器。

使用系统监视器可以很容易地看到您的页面需要相当大的内存。 如果你转到Tools-> Web Developer-> Performance并在一段时间内记录你的页面,那么在Firefox中生成一个调用图是相当容易的。 一旦停止录制,只需选择左侧菜单中的数据和调试框顶部的Call-Tree。 它列出了哪些函数使用最多的处理器时间。

在我看来,无论Gecko功能如何,它都非常昂贵。

此外,控制台指出了一些有趣的事情:

  

改变对象的[[Prototype]]会导致代码运行得非常慢;而是使用Object.create d3.v3.js:3:157

创建具有正确的初始[[Prototype]]值的对象      

不推荐使用getPreventDefault()。请改用defaultPrevented。 HTML

     

传递给getElementById()的空字符串。

也许解决控制台指出的问题有助于解决您的问题。