1

我正試圖修復在IE8上進行Dive Into Python 3的性能問題。在IE8瀏覽this page,並在一段時間後,你會看到下面的彈出:使DiveIntoPython3在IE8中工作(修復Javascript性能問題)

alt text http://dl.getdropbox.com/u/87045/permalinks/dip3-ie8-perf.png

j/dip3.js

追查下來的罪魁禍首到這條線......找(「TR: (「+(i + 1)+」)td:第n個孩子(2)「);

如果我禁用它(並立即從函數返回),「停止執行此腳本?」對話框不會顯示,因爲現在頁面加載速度相當快。

我不是Javascript/jquery專家,所以我問你的開發人員爲什麼這個查詢使IE變慢。有沒有修復它?

編輯:您可以下載entire webpage(980K)進行本地查看/編輯。

回答

0

這似乎需要一點改寫。

nth-child是一個緩慢的操作。您應該通過生成類或標識符來實現當前的功能,這些類或標識符對於表和來自refs集合中的元素(dip3.js行183)將是通用的。然後:

refs.each(function(i) { 
    var a = $(this); 
    var li = a.parents("pre").next("table").find("td."+a.attr('class')); 
    li.add(a).hover(function() { a.css(hip); li.css(hip); }, 
    function() { a.css(unhip); li.css(unhip); }); 
}); 
0

此彈出消息是誤導 - 它實際上並不意味着IE運行緩慢,但執行的腳本語句的數量已超過某個閾值。即使腳本執行得非常快,如果超出限制,仍然會看到此消息。擺脫它的唯一方法是減少執行的語句數量或編輯註冊表。

http://support.microsoft.com/kb/175500

我發現微軟的落實這個很煩人。它會假設您的計算機的速度。