Hi,
in rekursiven Funktionen muß ein Interpreter grundsätzlich alle lokalen Variablen aufbewahren, bis die momentane Rekursionstiefe wieder verlassen wird - sonst gibt es Inkonsistenzen.
Logo! Haette ich selber dran denken koennen ...
Meiner Erfahrung nach läuft bei den gängigen Browsern wie Netscape 4 und IE 4/5 der Stack leider sehr schnell über. So ab Rekursionstiefen der Größenordnung 100 steigen die Browser bereits aus (und Netscape 4.07 unter Linux z.B. eher noch früher als unter Win95...!) - was eigentlich auf heutigen Rechnern mit durchschnittlich >= 64 MB Speicher nicht unbedingt nachvollziehbar ist.
Ich bin ziemlich neugierig und so habe ich meine rekursive Funktion einfach mal 2 Stunden laufen lassen. Siehe da, der Speicherverbrauch von Netscape stieg von gut 8MB auf gut 52 MB (!!) an (pfui Andrea, schlecht geschrieben! ;-)). Daraus ergaebe sich zwanglaeufig demnaechst ein Problem.
Nachdenklich stimmt allerdings, dass der Browser den Speicher auch dann nicht mehr freigegeben hat, als wieder von der Seite runter gegangen bin. Das ist unfein :-(
Weitere Tests ergaben dann, dass der Speicher prizipiell nur ausserst zoegerlich frei gegeben zu werden scheint. In anderen Worten: Je laenger man surft, umso weniger freien Speicher hat man zur Verfuegung. Gut, das ist nicht weltbewegend neu, aber so genau hab' ich's bisher noch nie betrachtet.
(Doch, ich hab' auch anderes zu tun ...)
Gruss,
Andrea