Hi Chris,
Nur kurz drüber geschaut, aber du machst appendChild in einer Schleife in der Art, dass es direkt ins DOM geht – wenn es sich um viele Elemente handelt, kann das der Performance schon stark abträglich sein.
Herzlichen Dank, das guck ich mir mal genauer an...
Sowas sollte man erst außerhalb des DOM machen – und dann das Elternelement erst dann (wieder) ins DOM einhängen, wenn alle Kindelemente hinzugefügt sind.
... die erste Bremse also hierda:
function listcontent(){
var str = store.get('dbf');
EAV = splitEAV(str);
var select = _("stoID");
for(var ent in EAV){
var title = EAV[ent]['title'];
select.options[select.options.length] = new Option(title, ent);
}
}
beim Füllen des Selects mit Options?
Oder, wenn du das Elternelement nicht aus dem DOM nehmen kannst/willst, die neuen Elemente erst mal in einem DocumentFragment zu „sammeln“, und dann dieses ins Elternelement einzuhängen (wobei das Fragment selber sich quasi „auflöst“).
Nächste Bremse wäre mit appendChild der Aufbau der Suchergebnis-Liste.
Davon abgesehen müssen DOM-Operationen je nach Browser auch nicht unbedingt die schnellste Art und Weise sein, Elemente zu erzeugen – manchmal ist auch bspw. innerHTML zum „Erzeugen“ von Elementen performanter. Aber bevor du das komplett umstrickst, probier erst mal obiges umzusetzen.
So ganz verstehe ich's noch nicht.
Viele Grüße,
Horsti