2009-10-08 49 views
0

我在js文件中得到了相当多的jQuery的脚本,现在我遇到了CPU经历的屋顶,当我在Firefox中打开网页。jQuery的尖峰CPU在Firefox

看着Firebugs控制台面板,我看到以下错误: 太多的递归调用。

然后,它指的是我的jQuery的1.3.2.min.js文件。

如何才能发现哪个jQuery函数触发CPU峰值?

我知道我可以关闭一个又一个jQuery函数,直到我找到了原因。我只是希望有一个更好的调试方式。

UPDATE

我发现,当我从萤火虫打开脚本,该jQuery的1.3.2.min.js文件属于另一个站点(多PGES我在浏览器中打开的一个)。

我被愚弄了,因为浏览器飙升,只有当我打开自己的网页。 难道会发生这种情况,然后浏览器加载jquery-1.3.2.min.js jquery-1.3.2.js?

回答

1

这是否也发生在IE8中呢? IE8有一个分析器,它会告诉你在每个javascript函数上花了多少时间以及它们被调用了多少次。 (点击F12,然后单击探查然后按下启动剖析和加载页面)

编辑:这听起来像你可能会传递什么意外将jQuery这是造成jQuery的无限复发。

你可以试试这个logging plugin看到飞机坠毁

+0

我只在FF中注意到了这一点 - 正如我在开发网站时使用的那样。 – Steven 2009-10-13 09:45:44

0

太多的递归调用之前发生了什么,意味着某些功能,说F(),被自称,然后再自己太多次。或者也许f()调用g()和g()调用f()等等......每个函数调用都会导致堆栈的增长。

+2

问题是“我怎样才能发现哪个jQuery函数触发CPU峰值?”而不是“什么是递归?” – strager 2009-10-09 22:32:35

+0

只需要了解自己的代码。 – natrium42 2009-10-09 22:36:15

+1

甚至可能发布代码。 – 2009-10-09 22:44:21