Hallo,
ich habe mal eine Frage bezüglich einer JavaScript Suchmaschine, die mir ein Freund geschrieben hat:
Sie durchsucht zwei Arrays (Titel, Stichworte) nach dem Suchwort. Die Ergebnisse werden dann dynamisch in einem neuen Dokument ausgegeben.
Mein Problem ist nun: die zu durchsuchende Arrays sind ca. 60 KB groß. Eine Suche dauert im IE 4 ca. 11 sec, im NN 4 ca. 30 sec (mit meinem P90). Das ist recht lang, wie ich finde. In einer Textverarbeitung geht das in sekundenbruchteilen und auch in der Doku von SelfHTML (kleine Helfer --> Offline-Suche) ist das Suchen, trotz des größeren Datenbestandes, schneller.
1. Wie kann ich das Script verbessern, daß es schneller wird?
2. Wieso ist der IE dreimal so schnell wie der NN?
Für Antworten bin ich dankbar.
Ach ja, hier mal der entscheidende Teil des Quelltextes:
"keyword" ist der Suchbegriff
die Such-Arrays heißen "titel[x]" und "text[x]"
function makeSearchEntries(keyword, ndoc)
{ for (x in text)
{ CountEntries[x] = 0;
for (var y = 0; y < title[x].length - keyword.length + 1; y++)
{ word = title[x].substring(y, y + keyword.length);
word = word.toLowerCase();
if (word == keyword) CountEntries[x]++; }
for (var y = 0; y < text[x].length - keyword.length + 1; y++)
{ word = text[x].substring(y, y + keyword.length);
word = word.toLowerCase();
if (word == keyword) CountEntries[x]++; }
if (CountEntries[x] > 0) addSearchEntry(x, CountEntries[x], ndoc); }
}
Jetzt schon vielen Dank für die Antworten.
Bis dann...
Alexander