如果我的JavaScript事件似乎都不是原因,我該如何診斷網頁性能問題?JavaScript之外的事件緩慢
我有一個web應用程序使用jqGrid。點擊網格會在發生任何事情之前導致2-3秒的凍結(包括任何點擊事件)。點擊頁面上的其他任何地方都可以(即時響應)。刪除行會減少延遲(50行非常慢,但5行會產生即時響應)。
解除頁面上的所有事件àla $('*').add(document).unbind()
不能解決問題,這導致我相信有我缺少的事件。
如果我將頁面源保存到桌面並在瀏覽器中打開該HTML文件,我看不到這種緩慢的行爲。這似乎表明,這實際上是一個JavaScript問題。
我正在使用Firefox 3.6.8和最新版本的Firebug進行測試。
該問題也影響其他瀏覽器,但在快速瀏覽器(Safari和Chrome)中影響較小。
更新:令人驚訝的是IE7似乎沒有受到這種滯後的影響。我在jqGrid點擊事件的一開始就發出了一個提醒,並且在點擊網格後立即出現了事件框。 Firefox仍然有一個多秒的延遲,Chrome和Safari的延遲時間非常短(不像IE那麼短,但仍然很短)。
更新#2:我相當有信心,這可能是Firefox中的一個錯誤。儘管我正在解除/終止所有事件,但我猜測Firefox並沒有正確地清理所有事情。我刪除了所有其他事件,並將一個單擊事件添加到網格表並啓動了分析器。然後我在桌上點了一下,結束了剖析器。我回來了一個「沒有活動來配置文件」。信息。
謝謝,我會檢查了這一點。希望它比Firebug的profiler更有用,它報告「沒有配置文件的活動」。 – MikeWyatt 2010-07-30 17:50:01