Chrome dev araçları harika, ancak Chrome bir tarayıcı olmadığından, herhangi bir JS performansı konusunda endişelenmeniz gerekiyor ve bu da işleri çok daha iyi hale getiriyor, diğer tarayıcılarda darboğazlar bulmaya yardımcı olmuyor.IE 8 has dev tools, profilinize izin verir, böylece her zamanki Firebug profilleyicisinin yanı sıra yararlı bulabilirdiniz.
Ancak durumunuzla ilgili olarak, yalnızca bir olayın bağlanmasının çok fazla CPU yükü, daha çok bellek sorunuyla sonuçlanmadığını, ancak sıradan bir şey yapmıyorsanız endişelenmenize gerek olmadığını söylememe izin verin. sayfanda. Eğer jQuery.live işlevi hakkında özellikle endişe ediyoruz Ayrıca eğer
, nasıl çalıştığını bana çabuk açıklayayım: Diyelim ki $('#linksWrap a').live('click', fn);
- Bu bir ve yalnızca bir olay işleyicisi oluşturur yapmak diyelim ve
#linkswrap
'a ekler.
- Bağlantılardan birini tıklattığınızda, tıklatma etkinliği DOM ağacında kabarcıklar, sonunda
#linkswrap
ulaşır.
- jQuery.live gerçekte hangi bağlantıdan geldiğini algılar. Bu bilgi tarayıcı Olay nesnesinde. Gördüğünüz gibi
- jQuery.live aslında oldukça verimlidir, Yani
tıklanan bağlantının kapsamında fn
geçerlidir. Tarayıcı sadece bir olay ekler, bu nedenle bellek kullanımı düşüktür ve yeni öğeleri sürekli olarak kontrol etmesine de gerek yoktur, olay kabarcıklandırmayı serin bir şekilde kullanır.
Aslında, bir sayfaya binlerce olay ekliyorsanız, iyi seçimler kullandığınızı varsayarak .live yönteminin daha verimli olabileceğini iddia edebiliriz. (Örneğin..something .foo .bar.baz
çok fazla çaprazlama ve köpürme gerektirir, ancak #parentOfTheLinks a.links
hızlı olacaktır)