我使用IE9,使用F12工具進入IE8標準模式,測試我的頁面。頁面腳本使用getBoundingClientRect
來計算視口中可見的內容。爲什麼getBoundingClientRect在IE8中變慢?
使用分析工具,我看到採取了很多時間來getBoundingClientRect
電話。例如,244次調用該函數的獨佔時間爲4,361ms!
是否有此功能是在IE8這麼慢的一個原因?在IE9模式下運行Chrome,FireFox等時,該功能似乎很快。
我使用IE9,使用F12工具進入IE8標準模式,測試我的頁面。頁面腳本使用getBoundingClientRect
來計算視口中可見的內容。爲什麼getBoundingClientRect在IE8中變慢?
使用分析工具,我看到採取了很多時間來getBoundingClientRect
電話。例如,244次調用該函數的獨佔時間爲4,361ms!
是否有此功能是在IE8這麼慢的一個原因?在IE9模式下運行Chrome,FireFox等時,該功能似乎很快。
的getBoundingClientRect最早是由微軟在IE5介紹,有沒有已知的性能問題。
jQuery UI的,和其他人,使用它,當在過去,他們移動到它,是真棒:http://ejohn.org/blog/getboundingclientrect-is-awesome/
我發現jQuery similar calculation
和getBoundingClientRect
之間的比較: http://jsperf.com/getboundingclientrect-vs-jquery 通常贏得getBoundingClientRect
你在IE8兼容模式下運行你的站點有時可能會影響性能,你可以在真正的IE8瀏覽器中測試它嗎?這裏的表現必須相同。
我將在本週晚些時候設置一個IE8虛擬機並進行測試。我希望這只是compat模式緩慢。 – 2013-05-01 17:53:39
@AndrewDavey我遇到了同樣的問題 - 你是否發現性能問題只是兼容模式的副作用? – 2013-07-25 16:35:29
@LarsGrammel - 這看起來很合適:http://xkcd.com/979/ – Bobson 2014-05-13 19:08:27
它每次調用可能引發DOM迴流,這取決於你如何以及在何處使用它? – Bergi 2013-05-01 16:17:48