SORU
6 Kasım 2009, Cuma


DOM Olay heyet nedir?

Herkes ne kadar faydalı JavaScript izah olay heyet misiniz?

CEVAP
6 Kasım 2009, Cuma


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 bulundu EventTarget'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 edecek Document 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:

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007
  • TechRax

    TechRax

    21 EYLÜL 2009
  • Trulia

    Trulia

    29 Kasım 2006