ich sitze hier vor einem externen Widget, das synchron geladen, vor allem im IE reichlich Verzögerung mit sich bringt. Ein Vorschlag den ich gefunden habe, liegt darin, das Script über var script=createElement('script') kurz vor dem abschliessenden body-Tag zu erstellen und das ganze über getElementById('scriptWrapper').appendChild('script') einzubinden.
Das ist schon ein guter Tipp. Aber ein Script muss entsprechend umgeschrieben werden.
Mit dem Erfolg das IE8 mit dem Rendern der Seite immer noch auf sich warten lässt (die Differenz mit bzw. ohne kann man mit der Armbanduhr messen, von daher liegen hier wahrscheinlich auch noch andere Probleme)
Wahrscheinlich. Zeig am besten mal ein Beispiel.
und dass die document.write Anweisungen irgendwie nicht im <div id="scriptWrapper" /> ausgeführt werden, sondern eben da, wo das Script-Element erstellt wird
Das ist logisch. Es wundert mich, dass document.write überhaupt etwas dem Dokument hinzufügt. Wenn es asynchron und damit unabhängig vom Parsen des HTML-Codes aufgerufen wird, dann entfernt es den gesamten Dokumentinhalt und ersetzt ihn.
document.write ist daher bei asynchronen Scripten unbrauchbar (vgl. JavaScript muss asynchron werden). Du müsstest stattdessen mit DOM-Methoden arbeiten, um den Code ins Dokument einzufügen (getElementById, innerHTML o.ä.).
was mich vor allem deswegen irritiert, da es ohne getElementById('scriptWrapper').appendChild('script') überhaupt nicht ausgeführt wird.
Das ist schon richtig. Ein script-Element bloß zu erstellen reicht nicht. Es muss zumindest temporär eingehängt werden.
Mathias