Die Einreichung von wiederholtem Formular ist das häufigste Problem bei Multi-User-Webanwendungen und verursacht viele Probleme. Es gibt viele Anwendungsszenarien, die auf doppelte Einreichungsprobleme stoßen, wie z. B.:
Klicken Sie zweimal auf die Schaltfläche Senden. Klicken Sie auf die Schaltfläche Aktualisieren. Wiederholen Sie die vorherigen Aktionen mit der Browser -Rückstufe, was zu einer wiederholten Einreichung des Formulars führt. Wiederholen Sie die Einreichungsformulare mithilfe des Browser -Verlaufs. Wiederholte HTTP -Anforderungen vom Browser.
Verschiedene Möglichkeiten, um wiederholte Einreichungen von Formularen zu verhindern
1. Deaktivieren Sie die Schaltfläche Senden . Verwenden Sie JavaScript, um die Schaltfläche Senden zu deaktivieren, nachdem das Formular gesendet wurde. Diese Methode verhindert, dass ungeduldige Benutzer mehrmals auf Schaltflächen klicken. Aber es gibt ein Problem. Wenn der Client JavaScript verbietet, ist diese Methode ungültig.In meinem vorherigen Artikel heißt es, dass die Verwendung einiger Jquery -Plugins gut funktioniert.
2.Post/Redirect/get -Modus . Führen Sie die Seitenumleitung nach der Einreichung durch, die als PRG-Modus (post-redirect-Get) bezeichnet wird. Kurz gesagt, wenn der Benutzer das Formular einreicht, führen Sie eine Client -Umleitung aus und wechseln zur Seite der Einreichungserfolgsinformationen.Dies kann wiederholte Einreichungen vermeiden, die von Benutzern verursacht werden, die F5 drücken, und es gibt keine Warnungen vor wiederholten Einreichungen von Browserformularen und kann auch die gleichen Probleme beseitigen, die durch die Vorwärts- und Backpression von Browsern verursacht werden.
3. Speichern Sie ein spezielles Logo in der Sitzung . Wenn die Formularseite angefordert wird, wird eine spezielle Zeichenzeichenfolge für Zeichen erzeugt, die in der Sitzung vorhanden und im versteckten Feld des Formulars platziert ist. Überprüfen Sie beim Akzeptieren von Verarbeitungsformulardaten, ob die Identifikationszeichenfolge vorliegt, und löschen Sie sie sofort aus der Sitzung, und verarbeiten Sie die Daten normal.Wenn Sie feststellen, dass es in der Formulareingabe keine gültige Flag -Zeichenfolge gibt, bedeutet dies, dass das Formular eingereicht wurde und diese Einreichung ignoriert wird.
Dadurch erhalten Ihre Webanwendung einen fortgeschritteneren XSRF -Schutz.
4. Fügen Sie Einschränkungen in der Datenbank hinzu. Fügen Sie eindeutige Einschränkungen in der Datenbank hinzu oder erstellen Sie eindeutige Indizes, um doppelte Daten zu verhindern. Dies ist der effektivste Weg, um wiederholte Datenanlagen zu verhindern.Das obige ist eine Einführung in diese 4 Methoden. Wenn Sie eine bessere Lösung haben, sagen Sie es mir bitte, und dieser Artikel wird kontinuierlich aktualisiert.