Das verstehe ich nicht: Hunderte HTML-Elemente sind überhaupt kein Problem und belegen nur minimal Speicher. Es sei denn, sie sind unglaublich umfangreich, haben unzählige Kindelemente oder dort sind Grafiken oder gar aktive Inhalte eingebunden.
Sorry, ich habs etwas doof formuliert. Die "Elemente" sind Elemente eines Javascript Objekts. Dieses Object ist Bestandteil des Autocompleter Plugins.
Ich halte es daher für unwahrscheinlich, dass es an zu wenig Speicher liegt, dass deine Liste »hakelig« bedienbar ist. Vielmehr könnte es das Durchsuchen einer großen Liste sein, was je nach Prozessor einfach langsamer abläuft. Wird die Suche serverseitig oder clientseitig erledigt?
Das ist eine gute Idee, die werde ich mal weiterverfolgen. Die Suche wird clientseitig erledigt, insofern könntest du recht haben. Allerdings beginnt das haken ja schon wenn die Liste zum ersten mal aufklappt... Ich werde der Sache aber mal nachgehen.
Was muss das für ein ultrakomplexes und umfangreiches Listen-Objekt sein, das den Speicher des Browsers platzen lässt?
»» Immer nur den Teil der Liste im Speicher halten die auch zu sehen ist.
Warum »hältst« du überhaupt irgendwas im Speicher?
Ein üblicher Auto-Completer lädt ein Stück HTML-Code vom Server nach. Der wird ins DOM einmontiert, dafür werden bestehende DOM-Elemente entfernt.
Bei dieser Vorgehensweise wird überhaupt nichts im Speicher gehalten.
Bei dem JQuery Autocompleter Plugin ist das Vorgehen etwas anders: Erst wird mittels Ajax eine komplette Liste aller Elemente als einfache textliste vom Server abgerufen. Diese List wird dann vom Plugin in ein JS Objekt gewandelt. Das Objekt wird im Speicher gehalten und wird zur Darstellung der Liste und zum finden der passenenden Elemente benutzt.
Ich könnte auch relative einfach das Suchen auf serverbasierend umstellen. Das werde ich mal testen und mich nochmal melden.
Wird aber sicherlich Anfang nächster Woche.
Viele Grüße
Alex