Mit der Beliebtheit von Internetanwendungen wird es für Benutzer immer häufiger, häufig Anfragen oder Formulare auf Websites oder Anwendungen einzureichen. Häufige Klicks und Einreichungen beeinflussen nicht nur die Benutzererfahrung, sondern können auch eine erhöhte Serverbelastung verursachen. Um diese Probleme zu vermeiden und die betriebliche Effizienz zu verbessern, haben sich Anti-Shake- und Anti-Repetition-Einreichungstechnologien entstanden.
Anti-Shake ist eine Technik, die kontinuierliche Triggerereignisse von Benutzern kombiniert, indem die Ausführung von Operationen verzögert wird, um ungültige Anforderungen zu reduzieren. Wenn ein Benutzer beispielsweise kontinuierlich in das Suchfeld eintritt, möchten wir normalerweise nicht, dass jede Eingabe eine Suchanforderung auslöst, sondern die Suche nach der Beendigung der Eingabe der Eingabe für einen bestimmten Zeitraum ausführen.
In PHP können ähnliche Anti-Shake-Effekte simuliert werden. Der folgende Code zeigt, wie statische Variablen verwendet werden, um den Timer zu speichern, um die Ausführung der Suchlogik zu verzögern:
function debounceSearch($keywords) {
// Speichern Sie den Timer, der die Suche beim letzten Mal ausgelöst hat ID
static $timer = null;
// Löschen Sie den letzten Verzögerungsvorgang
if ($timer) {
clearTimeout($timer);
}
// Erstellen Sie einen neuen Betriebsverzögerungsvorgang
$timer = setTimeout(function() use ($keywords) {
// Hier ist die tatsächliche Suchlogik
searchKeywords($keywords);
}, 500); // Verzögerung 500ms
}
In den tatsächlichen Projekten kann diese Funktion bei der Ereignisüberwachung des Eingangsfelds aufgerufen werden, um ein Eingangs-Anti-Shake zu erreichen, um mehrere Auslösen von Suchanforderungen in kurzer Zeit zu vermeiden.
Die Anti-wiederholte Einreichung wird hauptsächlich verwendet, um zu verhindern, dass Benutzer aufgrund von Netzwerkverzögerung oder Fehloperation beim Senden eines Formulars mehrmals auf die Schaltfläche Senden klicken, wodurch das gleiche Formular wiederholt verarbeitet wird. Eine gängige Praxis besteht darin, eine einzigartige Token zu verwenden, um die Einzigartigkeit der Anfrage zu überprüfen.
Das folgende Beispiel zeigt, wie doppelte Einreichungen durch Validierung von Token implementiert werden:
function verifyToken($token) {
// prüfen token Ist es gültig oder nicht,Normalerweise von Session Oder in der Datenbank vergleichen
if ($token == $_SESSION['token']) {
// token effizient
return true;
} else {
// token ungültig
return false;
}
}
function processForm($data, $token) {
// Zuerst überprüfen token
if (!verifyToken($token)) {
// token ungültig,Als doppelte Einreichung angesehen,Direkt zurückkehren
return;
}
// Hier ist die tatsächliche Formulationslogik
doSomething($data);
// Klar nach Abschluss der Verarbeitung token,Vermeiden Sie wiederholte Einsendungen
unset($_SESSION['token']);
}
Verwenden Sie diese Methode, um ein eindeutiges Token zu generieren, bevor Sie das Formular senden, und speichern Sie es in der Sitzung. Überprüfen Sie das Token, wenn Sie es senden, um sicherzustellen, dass das Formular nur einmal verarbeitet wird.
Durch Anti-Shake- und Anti-Repetition-Einreichungstechnologie kann die Betriebserfahrung von Benutzern effektiv verbessert werden, unnötige Anfragen und die Verarbeitung von Datenverdoppelungen können vermieden werden und der Serverdruck kann reduziert werden. In PHP-Anwendungen kann Anti-Shake durch die Verwendung des Timer-Mechanismus erreicht werden, und die Anti-wiederholten Einsendungen können durch Token-Überprüfung erreicht werden. Nach den tatsächlichen Bedürfnissen ist die flexible Auswahl der richtigen Lösung der Schlüssel zur Optimierung der Benutzerinteraktion.