Sven Rautenberg: javscript onLoad über AJAX nicht möglich?

Beitrag lesen

Moin!

in der ausgabe.html steht im body folgendes geschrieben:

<body onLoad="letsgo();">

AJAX kennt keinen Body (das X im Namen steht für XML, und in XML ist kein Element <body> definiert), also gibts auch kein onload-Event.

Das macht aber nichts, weil der asynchrone Teil von Ajax ja dafür sorgt, dass Javascript genau dann ausgeführt wird, wenn (unter anderem) der Ajax-Request vollständig ausgeführt wurde. Und das reicht ja vollkommen aus: Du kriegst "onAJAXload" die Kontrolle über den Programmfluß in deiner onreadystatechange-Funktion, und mußt da nur noch passend agieren.

Bedenke aber, dass das Nachladen von Javascriptcode in unterschiedlichen Browsern durchaus problematisch sein kann. Die Dokumentation des Frameworks jQuery spricht davon, dass z.B. der IE <script>-Inhalt ignoriert, wenn vorher keine anderen Zeichen kommen.

Die Frage ist aber eigentlich: Wozu brauchst du hier bloß AJAX? Und warum so viele sinnlose Daten? Deine ganzen Funktionen ließen sich perfekt schon in der Ursprungsseite einbinden. Würdest du Parameter in Funktionsaufrufen nutzen, müßtest du auch nicht cell2, cell3, cell4 etc. schreiben, sondern würdest genau eine Funktion "delayPicChange" haben, der du drei Parameter "pic", "src" und "delay" übergibst, um ein Bild nach einer Wartezeit auszutauschen. Das allein erfordert noch keinerlei AJAX.

- Sven Rautenberg

--
"Love your nation - respect the others."