2013-05-01 31 views
5

IE9 kullanıyorum, sayfamı test etmek için F12 araçlarını kullanarak IE8 standartları moduna geçirdim. Sayfa komut dosyası, görüntü alanında görünenleri öğrenmek için getBoundingClientRect10'u kullanır.Neden getBoundingClientRect IE8'de yavaş?

Profil oluşturma aracını kullanarak çok fazla zaman alan getBoundingClientRect numaralı telefonu arıyorum. Örneğin, 244 işlevine yapılan çağrılar 4,361ms özel bir zaman aldı!

Bu işlevin IE8'de bu kadar yavaş olmasının bir nedeni var mı? IE9 modunda çalışırken, Chrome, FireFox, vb, işlev hızlı görünüyor.

+0

Her bir çağrı, nasıl ve nerede kullandığınıza bağlı olarak bir DOM yeniden akışını tetikleyebilir? – Bergi

cevap

0

getBoundingClientRect ilk kez Microsoft tarafından IE5'te tanıtıldı ve bilinen bir performans sorunu yok.

jQuery UI, ve diğerleri, kullanmak ve geçmişte bunun taşıdığınızda, müthiş: http://ejohn.org/blog/getboundingclientrect-is-awesome/

Ben jQuery similar calculation ve getBoundingClientRect arasında karşılaştırmak bulundu:

getBoundingClientRect

genellikle kazanmak http://jsperf.com/getboundingclientrect-vs-jquery Sen sitenizi IE8 uyumluluk modunda çalıştıran, bazen performansları uglif edebilen, gerçek bir IE8 tarayıcısında test edebilecek misiniz? İşte performans aynı olmalı.

+0

Bu hafta sonra bir IE8 VM kurulumu yapacağım ve test edeceğim. Umuyorum ki, sadece uyum modu yavaştır. –

+4

@AndrewDavey Aynı sorunla karşılaşıyorum - performans sorunlarının uyumluluk modunun sadece bir yan etkisi olup olmadığını öğrendiniz mi? –

+3

@LarsGrammel - Bu uygun görünüyor: http://xkcd.com/979/ – Bobson