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



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

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




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






















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






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