2009-10-08 66 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