DOM Olay heyet nedir?
Herkes ne kadar faydalı JavaScript izah olay heyet misiniz?
CEVAP
Heyet, tek bir ortak ana) uı-olaylara yanıt veren bir mekanizmadır DOM yerine her çocuk, olay sihrini kullanarak "" (aka olay yayma). köpüren
Olay, 18**: bir öğe üzerinde tetiklenir
Olay hedefine gönderilir
EventTarget
ve herhangi bir olay dinleyicileri tetiklenen bulundu.Köpürme olaylar daha sonra herhangi tetikleyecek ek olay dinleyicileri tarafından bulunduEventTarget
'nın üst aşağıdaki zincirYukarıkontrol herhangi bir olay için dinleyiciler her kayıtlı ardışık EventTarget. Bu artış yayılma kadar devam edecekDocument
da dahil olmak üzere.
Olay köpüren tarayıcılarda olay heyet temelini oluşturur. Şimdi, bir olay tek bir ana öğe işleyicisi bağlayabilirsiniz, ve olay işleyicisi olduğunda yürütülenalt düğümleri üzerinde(ve çocuklarının sırayla).Bu olay Delegasyonu.İşte somut bir örnek:
<ul onclick="alert(event.type '!')">
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
Bu örnek olsaydın için tıklayın herhangi bir çocuğu <li>
düğümleri, olur bakın uyarı "click!"
, olsa bile yok ' I işleyicisi bağlı <li>
tıkladım. Eğer her <li>
onclick="..."
bağlı eğer aynı sonucu elde edersiniz.
Yararı ne?
Şimdi ihtiyacı var dinamik DOM manipülasyon yoluyla: yukarıdaki liste için <li>
yeni öğeler eklemek düşünün
var newLi = document.createElement('li');
newLi.innerHTML = 'Four';
myUL.appendChild(newLi);
Olmadanolay temsilci kullanarak "kendi kardeşleri gibi aynı şekilde hareket etmek. için" "onclick"
olay <li>
yeni öğe işleyicisi, yeniden bağlamanız gerekirİleolay heyetle bir şey yapmanıza gerek yok. Sadece listesine <li>
yeni ve bitti.
Bu işleyicileri yeni öğeler dinamik olarak oluşturulan ve DOM/çıkarılmış olduğu pek çok unsur, bağlı olan olay web uygulamaları için kesinlikle harika. Olay temsilci sayısı olay bağları olabilir büyük ölçüde azalmış hareket onlar için bir ortak üst öğe ve kod dinamik olarak oluşturur yeni unsurlar üzerinde uçabiliyor olması ayrılmış gelen mantık bağlama, olay işleyicileri.
Olay heyet için başka bir yararı toplam bellek ayak izi olay dinleyicileri tarafından kullanılan aşağı olay bağlarının sayısı git beri) gider. Sık sık boşaltın küçük bir sayfa için çok fazla bir değişiklik (örneğin, kullanıcı farklı bir sayfaya sık sık gidin.) olabilir. Ama uzun ömürlü uygulamalar için önemli olabilir. Bazıları gerçekten unsurları DOM kaldırıldı durumlar hala hafıza (yani onlar sızıntı) iddia zor-izlemek-ve sık sık bu sızdırılmış bellek bir olay bağlama bağlıdır. ""Olay dinleyici dinleyici atası olduğundan (). kesin unutma riski olmadan alt öğeler yok özgürsün olay heyetle Bellek sızıntıları bu tür (sabit bazen acayip. değil ortadan, eğer kontrol altına alınabilir Sana bakıyorum YANİ).
İşte olay heyet daha somut bazı kod örnekleri:
- How JavaScript Event Delegation Works
- Event Delegation versus Event Handling
- jQuery.delegate olay heyet seçici özelliğidir
- jQuery.on vefat ettiğinde olay heyet, 2. parametre olarak bir seçici kullanır
- Event delegation without a JavaScript library
- Closures vs Event delegation: sürer profesyoneller bir gözdeğilolay heyet kullanmak için kod dönüştürme
- İlginç bir yaklaşım, PPK delegating the
focus
andblur
events çıkardığı için (kideğilkabarcık)
Boolean değeri Android, olay işleme yö...
Olay güdümlü model ve reaktör örüntü a...
Olay köpüren ve yakalama nedir?...
Java 7 diamond operatörünün anlamı ned...
PDB dosyası nedir?...