Hallo,
ja, aber Javascript arbeitet ja nicht wirklich nebenläufig. Das Laden des neuen Inhalts (genauer gesagt, das Anfordern) beginnt ja erst, wenn der bis dato arbeitende onerror-Handler endet und der Browser bzw. die Javascript-Engine "Zeit hat", sich um die neu zugeteilten Aufgaben zu kümmern.
Gut, damit ist Reentranz-Problem also vom Tisch. Aber was ist mit dem zirkulären Verlauf? Wodurch wird der hier ausgeschlossen?
wird er nicht. Wenn der error-Handler durch das Neu-Besetzen von location.href eine neue Ressource anfordert, die ihrerseits auch wieder nicht geladen werden kann, entsteht eine endlose Abfolge von onerror-Aufrufen. Aber nicht rekursiv, sondern streng sequentiell.
Irgendwie fällt mir dazu wieder der "Triple Fault" ein, den ich in der guten alten Zeit von x86-Assembler (damals konkret 286) kennengelernt habe: Einen Fehler in der Fehlerbehandlungsroutine konnte die 286-CPU noch durch eine weitere Exception abfangen; wenn in diesem Exception-Handler dann _wieder_ ein Fehler auftrat, führte die CPU einen Reset aus.
So ein kontrollierter Abbruch fehlt wohl im hier vorliegenden Fall.
Ciao,
Martin
Chef zum Bewerber: Es gibt zwei Dinge, auf die ich allergrößten Wert lege. Das eine ist Sauberkeit! Haben Sie übrigens die Schuhe auf der Matte abgetreten? - Ja, selbstverständlich. - Gut. Das andere ist uneingeschränkte Ehrlichkeit. Übrigens, draußen liegt gar keine Fußmatte.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(