Ich habe an einer Anwendung gearbeitet, das Front-End verwendet hauptsächlich jQuery.Was sind die Unterschiede zwischen der Verwendung von Datenattributen und der Klasse/ID für JavaScript-Verhalten?
Wir verlassen uns darauf, dass bestimmte klassifizierte Elemente auf der Seite vorhanden sind, damit wir ihnen ein Verhalten zuordnen können. Zum Beispiel:
Einer der anderen Entwickler sagte, wir sollten Präsentation von Logik entkoppeln (was ich stimme). Da die Klassen für die Darstellung verwendet werden, schlug er vor Datenattribute mit:
$('[data-attribute-name~=value]').on('click', clickHandler);
Ich weiß jedoch, folgendes über diesen Ansatz:
- Es ist deutlich weniger performant als eine klassenbasierte Selektor
- HTML-Klassen werden verwendet, um einem DOM-Element semantische Bedeutung zu verleihen, und sind daher nicht auf Präsentationszwecke beschränkt.
Ich sehe keine besondere Erwähnung von entweder beim Lesen auf unobtrusive javascript.
Was sind die Hauptunterschiede bei der Verwendung von [data-attribute]
über Klassen/IDs?
Ist es ausschließlich eine Frage der Leistung/Präferenz?
IDs können auch verwendet werden, um einem DOM-Element semantische Bedeutung zu verleihen. – Terry
Eindeutige IDs sind immer der schnellste Weg, um ein Element zu finden, gefolgt (wie ich es verstehe) durch Tag-Auswahl, Klassenauswahl und willkürliche Attributauswahl. In der Praxis wird der Benutzer selten einen Unterschied feststellen, wenn die Seite nicht besonders groß ist. – Blazemonger
Der einzige große Unterschied wäre die Leistung bei der Auswahl nur nach Klasse vs nach Datenattribut, obwohl das moderne Browser nicht genug beeinflussen würde. –