Der Martin: Ajax onload

Beitrag lesen

Hi,

ich hab folgendes Problem, nach einem Buttonclick wird auf eine andere Seite gesprungen (also eine andere Seite angezeigt).
Gleichzeitig hab ich in javascript programmiert, dass bei diesem Buttonklick eine Anfrage an den Server gesendet wird um daten vom Server zu erhalten, die ich dann in der neuen Seite einbaue.

also nur dass wir uns richtig verstehen: Du forderst eine neue Seite an, und setzt quasi gleichzeitig noch einen AJAX-Request ab?

Mein Problem ist jetzt, dass es manchmal klappt aber manchmal auch nicht, da die Seite noch nicht feritg geladen ist, ich die Daten aber schon einzubauen versuche.

Wenn es klappt, ist das purer Zufall. Theoretisch kann es nicht funktionieren. Denn die neu geladene Seite "weiß" nichts von dem vorher abgesetzten Request, und das zugehörige XHR-Objekt ist ja zusammen mit der vorhergehenden Seite "entsorgt" worden. Wenn also die Antwort auf den AJAX-Request eintrifft, kann sie nicht zugeordnet werden.

Wie kann ich es anstellen, dass ich zuerst warte, bis die Seite geladen ist und dann erst die Daten eingebaut werden?
Das ist der Code zum empfangen der AJAX- Daten vom Server, hier muss ich irgendwo ein onload oder so einbauen, aber wie?

Ja, zum Beispiel. Am besten, du rufst die neue Seite auf und übergibst ihr einen URL-Parameter. Den kannst du dann (entweder onload oder ziemlich weit unten direkt im Dokument) mit Javascript auswerten, und dann den AJAX-Request von der neu geladenen Seite aus absetzen.

Ich frage mich allerdings, warum du das so umständlich machst: Wenn du sowieso eine neue Seite lädst, kannst du sie auch gleich serverseitig so aufbereitern, dass sie den gewünschten Inhalt hat. Dann wäre der AJAX-Ansatz überflüssig.

So long,
 Martin

--
Niemand ist überflüssig: Er kann immer noch als schlechtes Beispiel dienen.