Hi!
Bin gerade dabei, ein Foldout-Menu mit beliebiger Verschach-
telungstiefe zu schreiben, das auf möglichst vielen Browsern funktioniert. Um eine schöne Performance zu haben, d.h. langsames, schrittweises ein- und Ausfalten der Untermenüs, packe ich
aus der Baum-Struktur hervorgehende Anweisungen zunächst in
eine Queue, aus der ich sie dann erst in linearer Sequenz
auswerten lasse (setTimeout läßt sich so sauberer kontrollieren).
Das geht auch ganz prima in NS 4.x, NS 6.x, IE 5, IE 6.
Nur Opera 5/6 reagiert sehr merkwürdig: Er bricht die Ausführung
der Sequenz einfach irgendwann ab, macht höchstens so 10-15
Anweisungen. Und zwar in allen mir zur Verfügung stehenden
Versionen: 5.0, 5.11, 6.0 auf Windows, Linux, Solaris. (Bricht
bei unverändertem Code immer nach der gleichen Anzahl von
Ausführungen ab.)
Es scheint irgendetwas mit dem Speicher zu tun zu haben, denn
wenn ich weitere Variablen im Code deklariere, bricht er
früher ab. Ansonsten habe ich keine Idee woran es liegen
könnte.
Wer Lust hat, kann es mal ausprobieren unter der angegebenen URL.
(Mit 'debug = true' oben im code ist jede der Queue-Ausführung
einzeln zu bestätigen.)
Gibt es Kommentare dazu? Ähnliche Effekte beobachtet?
Ist das ein Bug? Und wenn ja, warum hat man ihn dann in
Opera 6 nicht behoben?
Gruss
Sebastian