Hello,
Man wird beim aktualisieren ja gefragt "Neu senden"?..
Das hast Du eben aber so nicht gesagt.
Es handelt sich hier auch um mehrere Dinge, die Du beachten musst.
1. Abfangen eines Mehrfachposts, der bei manchen Browsern möglich ist,
solange noch kein Response eingetroffen ist
(wie das serverseitig geht, habe ich beschrieben)
2. Rücksetzen der Seite, damit sie die gespeicherten Postdaten verwirft
und auch bei History-Back nicht nochmal sendet.
Dafür ist der Statuscode 205 da
Der hat nur den Nachteil, dass Du kein response-Body mitsenden kannst
Den musst Du Dir dann über einen Location Header extra anfordern.
Dazu benötigt man schon fast wieder eine Session. Man will dem User
schließlich die eingetragenen Daten nochmals vorlegen
3. Damit der Request auch bei einem Multipost vollständig abgearbeitet
wird und keine halben Sachen in Datenbanken oder Datein eingetragen
werden, muss man den User-Abort während der Formularverarbeitung auf
dem Server abschalten.
http://de3.php.net/manual/en/function.ignore-user-abort.php
Sollte nämlich der Folgerequest noch während des bereits laufenden
ausgelöst werden, könnte die Barbeitung des bereits laufenden einfach
mittendrin abgebrochen werden. Müssen nun aufwändige von einander abhängige
Datenmanipulationen durchgeführt werden, könnten die damit inkonsistent werden.
Außerdem kannst Du noch auf dem Client mittels JavaScript den Submit-Button abschlaten, wenn er einmal gedrückt wurde.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg