Wann sollte querySelectorAll verwendet werden?

9

In einem Beispielcode schrieb ich

%Vor%

Und ich dachte, ich könnte das durch

ersetzen

var as = document.querySelectorAll("a.false");

Nach dem Lesen der folgenden Fakten

  • So tun, als wäre die Browser-Unterstützung kein Problem (wir haben Shims und Polyfills).
  • Tue so, als ob du nicht in deiner generischen jQuery-Denkweise QSA benutzen solltest, um jedes Element zu bekommen.
  • Ich werde qsa anstatt document.querySelectorAll schreiben, weil ich faul bin.

Frage: Wann sollte ich QSA gegenüber den normalen Methoden bevorzugen?

Es ist klar, dass wenn du qsa("a") oder qsa(".class") oder qsa("#id") tust, es falsch ist, weil es Methoden gibt (byTagName, byClassName, byId), die besser sind.

Es ist auch klar, dass qsa("div > p.magic") ein sinnvoller Anwendungsfall ist.

Frage: Aber ist qsa("tagName.class") ein guter Anwendungsfall von QSA?

Als nächstes gibt es diese Dinge auch NodeIterator

Ich habe eine Frage zu QSA vs NodeIterator

gestellt     
Raynos 29.10.2011, 19:32
quelle

3 Antworten

2

Sie sollten QSA verwenden, wenn die Funktionen gEBI, gEBN, gEBCN nicht funktionieren, weil Ihr Selektor komplex ist.

QSA vs DOM Parsing ist eine Frage der Präferenz und was Sie mit dem zurückgegebenen Datensatz tun werden.

    
Raynos 07.11.2011, 04:11
quelle
1

Wenn Browser-Unterstützung kein Problem war, würde ich es einfach überall verwenden. Warum sollten Sie 4 verschiedene Methoden verwenden (... byId, ... byTagName, ... byClassName), wenn Sie nur einen verwenden könnten.

QSA scheint langsamer zu sein (... byId ), dauert aber immer noch nur wenige Millisekunden oder weniger. Meistens nennst du es nur ein paar Mal, also kein Problem. Wenn Sie auf einen Geschwindigkeitsengpass treffen, können Sie QSA durch den jeweils anderen ersetzen.

    
Gerben 29.10.2011 20:44
quelle
0

Ich habe ein paar Tests für dich vorbereitet, mit denen du herumalbern kannst. Es scheint, dass QSA viel langsamer ist. Aber wenn Sie es nicht so nennen, sollte es kein Problem sein.

Ссылка

EDIT - jsperf-Version

Ссылка

    
Will 29.10.2011 20:52
quelle

Tags und Links