• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] eigene document.getElementById()/usw. -Funktionen

J

j-l-n

Guest
Eine Frage mal so in die Runde: bringt es eigentlich irgendwelche Nachteile mit sich, wenn man document.getElementById() u.ä. durch eine eigene Funktion verkürzt?
Also z.B. so:
Code:
function getbyID(ID){
  return document.getElementById(ID);
};
Und dann beispielsweise
Code:
var text = getbyID("text").innerHTML;
var eingabe = getbyID("eingabe").value;
 
Wenn man das zu oft macht wird es in der Performance messbar sein. Allerdings müsste es durch weniger Code auch wiederum eine Performance Verbesserung geben.
Müsste man mal benchmarken. Aber vermutlich wirst du in diesem Leben nicht mehr so viel Code schreiben, dass sich das bemerkbar auswirkt :)
Nimm doch einfach jQuery, da ist es nur $('#text'). und man kann direkt ein Kommando dran hängen.
 
Wenn man das zu oft macht wird es in der Performance messbar sein.
OK, dachte ich mir schon.

Nimm doch einfach jQuery, da ist es nur $('#text'). und man kann direkt ein Kommando dran hängen.
Hab mich sowieso nur dafür interessiert, weil mir das jetzt ein paar mal unter die Augen gekommen ist. Ich verwende weiterhin einfach document.getElementById() in der "Standardausführung" ;)
 
Ja, und was ist deine Frage?
die aussage war, dass jqueryselektoren um welten langsammer sind als eine gewrappte getElementById funktion, selbst wenn der browser querySelektor unterstützt.

und warum soll es durch weniger code eine performance verbesserung geben? welcher code wird denn weniger? es ist ja mehr code durch den wrapper.
 
EDIT: schon wieder nicht aktualisiert...

Durch weniger Zeichen wird der JS-Parser etwas schneller, aber das kann man komplett vernachlässigen. Und auch wenn man die Wrapperfunktion extrem häufig verwendet, wird der DOM-Zugriff durch document.getElementById() viel mehr Zeit brauchen als der zusätzliche Funktionsaufruf.
 
Zuletzt bearbeitet:
die aussage war, dass jqueryselektoren um welten langsammer sind als eine gewrappte getElementById funktion, selbst wenn der browser querySelektor unterstützt.
Wo steht das?

und warum soll es durch weniger code eine performance verbesserung geben? welcher code wird denn weniger? es ist ja mehr code durch den wrapper.
Ab einer bestimmten Zahl Nutzungen im Code wird es weniger Code durch den Wrapper, nämlich dann, wenn die Anzahl der durch den Wrapper eingesparten Zeichen größer ist als die Anzahl der Zeichen die der Wrapper selbst braucht. Kannste jetzt leicht ausrechnen, oder nicht?
 
Durch weniger Zeichen wird der JS-Parser etwas schneller, aber das kann man komplett vernachlässigen. Und auch wenn man die Wrapperfunktion extrem häufig verwendet, wird der DOM-Zugriff durch document.getElementById() viel mehr Zeit brauchen als der zusätzliche Funktionsaufruf.
Dankeschön für die Info, Korbinian!
 
hier: weil das so ist!
das sollte logisch sein, wenn du es nicht glaubst, teste es

Ab einer bestimmten Zahl Nutzungen im Code wird es weniger Code durch den Wrapper, nämlich dann, wenn die Anzahl der durch den Wrapper eingesparten Zeichen größer ist als die Anzahl der Zeichen die der Wrapper selbst braucht. Kannste jetzt leicht ausrechnen, oder nicht?
lol, du redest von zeichen? was haben die mit der performance des code zu tun? weniger zeichen heisst nicht weniger laufzeit. du kennst dich ein bischen mit computern aus?
durch wenicher zeichen hast du geringfügig kleinere downloadzeiten, das parsen dauert geringfügig weniger zeit.
aber zur laufzeit hast du jedesmal einen call mehr, ist auch nur geringfügig, aber immer mehr, nie weniger.
 
Zurück
Oben