Clarence |
2009-06-28 00:50 |
Citat:
Originally posted by dAEk@Jun 27 2009, 23:01
Utöver det får man bättre prestanda om man är nogrann med att peka ut vägen till elementen. Man märker det kanske inte så mycket på en vanlig dator men sitter man vid en burk med sämre prestanda - Atom-baserade netbooks t.ex. - då märker man skillnad. Det kan vara bra att ha i bakhuvudet.
|
Logiskt sett kan jag tycka att du borde ha rätt, men ofta är det faktiskt tvärtom. Så länge man använder taggnamn eller IDs innan en attribut-selektor har du rätt. Men gör du något i stil med ".myBodyClass div.rightColumn #myHeader" så blir det mycket långsammare än att komma åt #myHeader direkt. Anledningen är att en effektiv getElementByClassName normalt sätt inte finns i js-implementationerna samt att alla browsers verkar ha optimerat för getElementById.
Att i detta fallet lägga till en id="upgrade" och använda den istället för input[name=upgrade] skulle förmodligen vara minst 5 gånger snabbare, trots att det sämre beskriver vägen till elementet. Browsers traverserar helt enkelt inte ett dokument i sin helhet för alla typer av selektorer.
|