同事寫了段JQuey的代碼,在某些機器上,會出現IE假死的性能問題。
我測試了一下代碼花費的時間,在我的機器上,會花費600多毫秒,但在某些機器上會花費6秒多(10倍的增長),這樣就導致了IE的假死。而且發現與IE版本無關,在大多數機器上會都只需要600多毫秒,不過CPU會有10%以上的瞬間提長。
先來看看出問題的代碼:



開始找原因,看看到底是什么慢?

$(".eXtremeTable") 花費20毫秒左右;
$(html).find(".eXtremeTable") 花費200毫秒左右;
replaceWith() 花費10毫秒左右;
不難定位到是由于$(html).find(".eXtremeTable")這種方式引起的。
(這都是在我機器上的測試結果,而且每次可能不完全一樣)
簡單的可以這樣優化:




遂采用比較原始的辦法,修改源程序如下:






















OK,IE再也不假死了。
問題分析:
原因應該就出在jQuery(html)這個方法上,官方文檔解釋如下:






至于為何在某些機器上出現高達6秒多的時間消耗,百思不得其解,請高手指點!
特別提示:
本Blog所有內容不得隨意轉載,版權屬于作者所有。如需轉載請與作者聯系(fastzch@163.com)。未經許可的轉載,本人保留一切法律權益。