Sollten wir vor dem Zuweisen von Ereignissen prüfen, ob ein Element existiert?

8

Ich sehe viele Leute überprüfen, ob ein DOM-Element vor dem Zuweisen eines Ereignisses existiert, zum Beispiel (coffeescript):

%Vor%

Ist das notwendig? Wenn wir nur das Ereignis hinzufügen, ob das Element existiert oder nicht, gibt es einen Leistungseinbruch?

    
Craig Knox 10.06.2012, 18:59
quelle

1 Antwort

12

Jeder Methodenaufruf in jQuery ist in eine .each -Funktion eingebettet. Daher ist es in der Regel nicht notwendig, zu prüfen, ob ein Element vorhanden ist. Es gibt keine Iterationen der aufgerufenen Funktion, wenn der Satz leer ist und ohne Erfolg ausgeführt wird. Das angegebene Beispiel ist ein gutes Beispiel dafür, es gibt keinen Schaden oder eine Leistungseinbuße, wenn man $('#progressbar').progressbar() direkt aufruft.

Wenn Sie das tun wollen, weil Sie das DOM manipulieren oder eine teure Operation durchführen, je nachdem, ob ein Element vorhanden ist, vergewissern Sie sich, dass Sie den Aufruf zwischenspeichern, besonders dann, wenn es ein komplexer Selektor:

%Vor%

oder alternativ unter Ausnutzung der Sicherheit von coffeescript:

%Vor%     
Ricardo Tomasi 11.06.2012, 09:22
quelle