Hallo Tom,
genau das, was ich sagte: Das Script, das auf dem Server angestoßen wird, sendet keine Antwort im eigentlichen Sinn, sondern nur den HTTP-Status 204. Dann weiß der Client: Da kommt nix weiter. In diesem Fall bleibt die aktuell im Browser angezeigte Seite auch stehen, als ob nie ein anderer Request stattgefunden hätte.
Meiner Ansicht nach die eleganteste Methode.
Bist Du dir sicher, dass das Script nach dem Senden des Status 204 auch noch zuende läuft?
ähm, ja. Kommt drauf an.
Eigentlich gehe ich davon aus, dass das Script erst seine Arbeit erledigt, und dann *zum Schluss* seine Antwort gibt. Also entweder ein 204er-Status, wenn alles in Ordnung war, oder eben eine Seite, die Informationen zum Fehler gibt.
MMn darf der Browser nach dem Erhalt von Status 204 nämlich die Verbindung kappen. Und das kommt dann einem Userabort gleich. Der würde zumindest bei PHP (was ja hier auch im Gespräch war), die Beendigung des Scriptes zur Folge haben.
Gerade bei PHP nicht. Zumindest wenn man's auf herkömmliche Weise mit header() macht, wird dadurch ja nur der zu sendende HTTP-Header vorbereitet und im Ausgabepuffer bereitgestellt. Endgültig zum Client geschickt wird das Zeug aber erst, wenn das Script Ausgaben macht oder beendet wird.
Zugegeben, wenn wir von Scripts reden, die wirklich mehrere Sekunden Laufzeit haben, ist die Methode nicht wirklich schön.
So long,
Martin
Husten kann böse Folgen haben.
Besonders im Kleiderschrank.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(