Bei einer Webanwendung (JSP) gibt es Probleme, wenn ein Anwender an unvorhergesehener Stelle den Back-Button klickt, weil beim Seitenreload ggf. diverse Funktionsaufrufe gestartet werden (z.B. Datenbankeinträge), die gerade nicht "dran sind" (=> doppelte Keys in der Datenbank, Absturz der Anwendung). Dieses Problem wurde bei der Programmierung nicht bedacht. Ich habe nun gehört, daß es verschiedene Möglichkeiten -auch mit Javascript- geben soll, um die Benutzung des Back-Buttons zu verbieten. Allerdings wäre es in meinem Fall dann wichtig, daß sie wirklich verboten wird und nicht einfach nur statt eines Reloads der vorherigen Seite ein Reload der aktuellen Seite erfolgt (was wohl bei location:replace() der Fall wäre), denn das würde dieselbe Problematik bewirken: die Anwendung geht einfach davon aus, daß man sich der Reihe nach "durchklickt", doppelte Seitenaufrufe und damit doppelte Funktionsaufrufe führen unweigerlich zu Problemen. Gibt es da also eine geeignete Möglichkeit dafür?
Hallo lava,
ich kenne keine solche Möglichkeit, per JavaScript den Back-Button zu deaktivieren oder die History zu löschen.
Mir fiel da als Lösung auch nur ein, serverseitig (in deinem Fall in JSP) die einzelnen Schritte in einer Session- oder Datenbank-Variable hochzuzählen und wenn der Wert für den betreffenden Schritt bereits hochgezählt wurde, das Script nicht mehr auszuführen.
Sowas kenne ich auch nicht, zumal es im Normalfall ein Unding ist, dem Zurück-Button seine Funktion zu nehmen. Ist das Problem, dass ein vorheriger Post nochmal ausgeführt wird, wenn man auf Zurück klickt?
Es gibt verschiedene Probleme mit dem Zurückbutton. Zum einen werden Dinge doppelt ausgeführt, die nicht doppelt ausgeführt werden sollen, zum anderen werden Dinge nicht beendet, die beim Vorwärtsklicken dann eigentlich der Reihe nach abgearbeitet werden sollen (wenn z.B. eine Frage angelegt wird, SOLLEN auch die Antwortmöglichkeiten angelegt werden => wenn das NICHT passiert, gerät die Zählung in der Datenbank ganz durcheinander).