- Übertreibe ich es mit der OOP?
Nö. Wenn die Sache so flexibel sein soll, dann ist das schon okay.
- 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?
Allein die bloße Existenz von Buttons im Dokument mit Handlern ist m.W. kein Problem. Schwierig wirds, wenn die irgendwie nebeneinander liegen, man über all schnell mit der Maus fährt und dann viele Handlerfunktionen in der Ausführungsschlange des JavaScript-Interpreters liegen. Dann muss man damit rechnen, dass das Bildwechseln zäh abläuft. Aber so oder so feuert jede Mausbewegung zwischen den Buttons verschiedene Events. Bei Event Delegation müsste also jeder Mouseover-, jeder Mouseout- und jeder Mousedown-Event verarbeitet werden! Dabei muss überprüft werden, ob das Zielelement ein Button ist oder in einem Button liegt. Dann müsstest du vom Zielelement zur zugehörigen CButtonSend-Instanz kommen (das ginge über eien Verweis vom Elementobjekt auf die Instanz).
Dass das auf jeden Fall besser performt, glaube ich nicht - ich würde es vor allem in den Mobile-Browsern ausprobieren (dort gibts ja auch keine »Maus« in dem Sinne).
- 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 gibt einem da nichts vor, aber standardmäßig vergibt man in jQuery vielen Elementen einzelne Handler. Man kann natürlich auch verstärkt mit Event Delegation arbeiten, wofür einem Version 1.3 eine Helferfunktion bietet.
Mathias