Hallo zusammen,
ich hab bereits gestern schon zu diesem Thema geschrieben, allerdings aus einem zu detaillierten/unverständlichen Blickwinkel. Deshalb versuch ichs heute nochmals abstrakter:
Ich beschäftige mich (wie wohl so viele :-)) seit kurzem mit AJAX. Die grundlegenden Sachen funktionieren auch, aber jetzt bin ich an ein Problem gestoßen, wo ich nicht mehr weiter weiß:
Im Normalfall werden bei AJAX ja nur Teile der Seite ausgetauscht. Nun gibt es bei mir (ich erweitere eine bestehende Applikation) aber auch Fälle, wo ich erst auf dem Server - also NACH dem Absenden des AJAX-Requests - merke, dass ich die komplette Seite neu laden muss. Und was mache ich dann?
- Möglichkeit 1: (so mache ich es jetzt)
In solchen Fällen liefert mir mein XMLHttpRequest-Objekt folgerichtig den Code für die komplette Seite. Dann gehe ich her und sage:
document.open();
document.write(html_code_fuer_die_ganze_seite);
document.close();
Das funktioniert eigentlich ganz gut. Nur wenn ich im Browser anschließend F5 drücke, verhaut er mir meine ganze Seite und es gibt ne Menge JS-Fehler. Sieht irgendwie so aus, also würden die im Header eingebundenen externen CSS- und JS-Skripte irgendwie net richtig geladen, obwohl davor alles tip top aussieht - sowohl optisch als auch im Source Code.
FRAGE 1: Hat jemand vielleicht ne Ahnung woran das liegen könnte???
Möglichkeit 2:
Ich weiß aufm Server wann ich alles neu laden muss. Also sende ich nicht den kompletten Code, sondern nur nen Link zur Seite die geladen werden muss. Aufm Client extrahiere ich diesen Link aus der Antwort und lade ihn per JS. Nachteil: es sind zwei Requests nötig, der initiale AJAX-Request und der spätere Redirect. Müsste aber sicher funktionieren.
Möglichkeit 3:
??? Ich bin doch sicher nicht der erste mit diesem Problem, denn AJAX ist doch schon ne ganze Weile hipp, oder?
FRAGE 2: Hat mir da jemand vielleicht nen guten Ansatz oder gar ein Standardvorgehen?
Vielen Dank,
Martin