Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03557.jsonl.gz/733

Hallo,
in Peter Kahrels ScriptUI for dummies
(scriptui-1-12.pdf auf S. 35) findet sich ein hübsches Schnippsel zum fortlaufenden Filtern von Einträgen in einer Liste.
Mit dem Austausch der Zeile "if (array[i].toLowerCase().indexOf (temp) == 0)
" gegen if (array[i].toLowerCase().match(temp) != null )
lässt sich der Filter auch auf 'Innenbereiche' der Listenbegriffe ausdehnen.
Nun arbeite ich mit einer Palette statt mit einem Dialog und benötige die Filterung der Liste über eine längere Zeit. Dabei stelle ich fest, dass mit der Zahl der Einträge in der Liste die Aktualisierungszeit gefühlt wie exponential ansteigt.
Zwar habe ich schon von onChanging
auf onChange
gewechselt, damit nicht fortlaufend, sondern erst nach Eigabe von Enter gefiltert wird. Aber bei Listen mit 150 und mehr Einträgen dauert das dann immer noch lange.
Interessanterweise ist nicht – wie ursprünglich vermutet – der Neuaufbau der Liste die Bremse, sondern das Löschen(!) der Listeneinträge mit dem simplen Befehl removeAll()
.
Momentan behelfe ich mir mit einem kompletten Neuaufbau der Palette (Sichern der Werte, Schließen der Palette und Neuzeichnen unter Verwendung der gesicherten Werte. Das geht deutlich schneller als das Löschen der Listeneinträge. Aber man sieht eben die Palette zwischen dem Schließen und dem Neuzeichnen blinken.
Weiß jemand einen Weg, wie man alternativ die Liste selbst (statt nur aller Listeneinträge) löschen könnte, um sie hinterher mit add()
wieder neu aufzubauen?