Hallo,
ich habe ein Script, welches mit recht komplexen regulären Ausdrücken eine Seite nach Glossarbegriffen durchsucht und gefundene Begriffe durch DFN-Nodes ersetzt.
Man könnte sich wohl eine Woche hinsetzen und groß angelegte Tests verschiedener Algorithmen machen, die den Knotenbaum vollkommen auf den Kopf stellen. Ich bezweifle aber ernsthaft, dass dabei eine brauchbare und halbwegs performante Lösung herauskommt, die zudem in genügend Browsern zuverlässig funktioniert. Man kann sicher mathematisch berechnen, wieviele Stringvergleiche beim Durchlaufen eines gewissen Textes mit gewissen Wortvorkommen notwendig sind. Pi mal Daumen sind es bei einer so großen Anzahl von Begriffen soviele, dass indexOf() oder RegExp einen Flaschenhals bilden werden.
Ich sehe keine Hoffnung darin, diese Aufgabe mit JavaScript lösen zu können. Wenn du einen halbwegs ausgegorenen Algorithmus schon hast, kannst du dein Konzept ändern und diese Ersetzungen serverseitig vornehmen. Zum Beispiel mit dem DOM-Modul von PHP 5 zusammen mit dessen RegExp-Engine.
Mein Script basiert hauptsächlich auf einer rekursiven Funktion, die sich, beginnend bei einem bestimmten Knoten (einem DIV mit der id "content"), durch dessen Unterelemente hangelt und jeden Textknoten in einer for-Schleife, die über einen Array mit den Glossarbegriffen iteriert, nach den Glossarbegriffen durchsucht (mittels exec()).
Das Script würde mich interessieren, im anderen Posting habe ich ein ähnliches einfaches verlinkt.
Mathias