LX: Frage zur Performance bei Event Handlern

Beitrag lesen

(...)

  1. Übertreibe ich es mit der OOP?

Nein.

  1. Ich habe gelesen, das bei Verwendung von vielen Event Handlern die Performance in die Knie geht. Ab wann wirds kritisch? Ich werde vielleicht 60-70 Buttons haben. Wäre da ein Konzept mit Event Delegation besser?

Das betrifft hauptsächlich den MSIE, der ab ca. 50 Event-Handlern eine Last von bis zu 80% erzeugt und aufgrund des mangelnden Threadings auch anderweitig in die Knie geht. Versuche daher, innerhalb der Events so wenig wie möglich zu tun.

  1. Wenn sich solche Buttons in einem mit "display:none" ausgeblendeten Container befinden, belasten diese die Engine dann auch?

Das hängt vom jeweiligen Handler ab. Mouse- und Keypress-Handler sind davon nicht betroffen, alle anderen schon.

  1. Wie ist das z.B. bei jQuery? Wenn ich da eine Event z.B. allen DIV's zuweise, werden die dann alle einzeln registriert? Oder wird da mit Event Delegation gearbeitet?

jQuery beherrscht in der Version 1.3 Event Bubbling, d.h. Events werden an die Parents weitergereicht. Des weiteren werden sogenannte live Events unterstützt, d.h. Events, die auch neuen Elementen mitgegeben werden. Das Ergebnis sind trotzdem einzelne Events, die auf die entsprechenden Objekte gesetzt werden (das Bubbling funktioniert jedoch über Sizzle, nicht über Events). Performancemäßig ist das keine Verbesserung, aber auch keine Verschlimmerung gegenüber manuell gesetzter Events.

Gruß, LX

--
X-Self-Code: sh:( fo:) ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: Unusual
X-Please-Search-Archive-First: Absolutely Yes