Ajax onload
Ann-Katrin
- javascript
0 Der Martin
0 hotti0 Joachim0 hotti
Hallo,
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.
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.
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?
function updatePage() {
if(request.readyState == 4) {
if(request.status == 200) {
var response = request.responseText;
setValues(response);
variableRequest();
}
}
}
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
hi,
Wie kann ich es anstellen, dass ich zuerst warte, bis die Seite geladen ist und dann erst die Daten eingebaut werden?
Anderstrum: Seite komplett neu schreiben mit write und dem Browser mit close mitteilen, dass er fertig ist mit rendern. Dann wieder Ajax...
Hotti
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.
Du meinst, Du verlässt die Seite, sendest vorher aber noch schnell einen Ajax request ab, den Du auf einer neuen Seite einbauen willst? Das kann nicht gehen. Sprichst Du eigentlich von einem Frameset?
Gruesse, Joachim
hi,
Du meinst, Du verlässt die Seite, sendest vorher aber noch schnell einen Ajax request ab, den Du auf einer neuen Seite einbauen willst? Das kann nicht gehen.
Klar geht das: http://rolfrost.de/php/hugo.php
Hotti