Georg: Komplette Seite aktualisieren mit AJAX - gibts da Patterns?

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

  1. Hallo Georg,

    ich hab bereits gestern schon zu diesem Thema geschrieben, allerdings  aus einem zu detaillierten/unverständlichen Blickwinkel.

    Es geht immer noch um Problem in deinem alten Thread. Bitte stelle weiterfuehrende Fragen, oder gib weiterfuehrende Erklaerungen auch dort, danke.

    Abgesehen davon sieht dein Problem stark danach aus, als sei AJAX der falsche Weg

    Gruß,

    Dieter

    1. Es geht immer noch um Problem in deinem alten Thread.

      Ja, eigentlich schon, nur eben nicht um die Probleme einer speziellen Lösung, sondern um den generellen Ansatz. Ich dachte da wäre ein neues Posting vertretbar.

      Bitte stelle weiterfuehrende Fragen, oder gib weiterfuehrende Erklaerungen auch dort, danke.

      Klar, sorry wenn ich da jetzt zu aufdringlich war.

      Abgesehen davon sieht dein Problem stark danach aus, als sei AJAX der falsche Weg

      Leider hab ich da keine Wahl. Ich MUSS in eine bestehende Applikation AJAX integrieren. Das heißt ich kann weder die Situationen vermeiden, in denen ich ein komlettes Update bruache, noch kann ich AJAX komplett weglassen. Abgesehen davon macht es ja uch durchaus Sinn, nur eben nicht immer...

      Hoffe auf ein paar Ideen im alten Thread.

      Sorry und Grüße,

      Georg