Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Anti-Shake- und Anti-Duplicate-Submission-Technologie: einer der Schlüssel zur Optimierung der Benutzerinteraktion

PHP-Anti-Shake- und Anti-Duplicate-Submission-Technologie: einer der Schlüssel zur Optimierung der Benutzerinteraktion

WBOY
WBOYOriginal
2023-10-12 12:15:111069Durchsuche

PHP 防抖和防重复提交技术:优化用户交互的关键之一

PHP-Anti-Shake- und Anti-Re-Submission-Technologie: einer der Schlüssel zur Optimierung der Benutzerinteraktion und erfordert spezifische Codebeispiele

Mit der Entwicklung des Internets stellen Benutzer immer höhere Anforderungen an das Erlebnis von Websites und Anwendungen . Während des Benutzerinteraktionsprozesses sind Anti-Shake- und Anti-Resubmission-Technologie zum Schlüssel zur Optimierung des Benutzererlebnisses geworden. In diesem Artikel werden die Anti-Shake- und Anti-Duplicate-Übermittlungstechnologien in PHP vorgestellt und spezifische Codebeispiele bereitgestellt.

Unter Anti-Shake-Technologie versteht man die Reduzierung unnötiger Anfragen, indem die Anzahl der Auslöser begrenzt wird, wenn der Benutzer kontinuierlich einen Vorgang ausführt. Wenn beispielsweise bei der Suche im Benutzereingabefeld in Echtzeit jedes Mal, wenn der Benutzer einen Buchstaben eingibt, eine Suchanforderung ausgelöst wird, erhöht dies nicht nur den Druck auf den Server, sondern führt auch zu einem unruhigen Erlebnis für den Benutzer. Durch die Anti-Shake-Technologie kann das auslösende Zeitintervall von Suchanfragen auf einen bestimmten Zeitraum begrenzt werden, und die Suchanfrage wird erst ausgelöst, wenn der Benutzer für einen bestimmten Zeitraum mit der Eingabe aufhört.

Das Folgende ist ein Codebeispiel einer in PHP implementierten Anti-Shake-Funktion:

function debounce($callback, $delay) {
    $timerId = null;

    return function (...$args) use ($callback, $delay, &$timerId) {
        if ($timerId != null) {
            // 清除之前的定时器
            clearTimeout($timerId);
        }

        // 创建新的定时器
        $timerId = setTimeout(function () use ($callback, $args) {
            // 执行回调函数
            $callback(...$args);
        }, $delay);
    };
}

Die obige Anti-Shake-Funktion akzeptiert zwei Parameter: $callback repräsentiert die Callback-Funktion, die ausgeführt werden muss, und $delay repräsentiert die Grenze von das Triggerzeitintervall. Wenn diese Funktion aufgerufen wird, wird eine neue Funktion als Ereignishandler zurückgegeben (z. B. das Onkeyup-Ereignis des Eingabefelds). Jedes Mal, wenn ein Ereignis ausgelöst wird, wird der vorherige Timer gelöscht und ein neuer Timer erstellt . Wenn der Benutzer für einen bestimmten Zeitraum mit der Eingabe aufhört, löst der Timer die Rückruffunktion aus.

Neben der Anti-Shake-Technologie ist auch die Anti-Repetitive-Submission-Technologie ein wichtiges Mittel zur Verbesserung des Benutzerinteraktionserlebnisses. Wenn ein Benutzer ein Formular sendet und mehrmals auf die Schaltfläche „Senden“ klickt, werden möglicherweise dieselben Daten wiederholt übermittelt, was den Server zusätzlich belastet und sogar unvorhersehbare Probleme verursacht. Mit der Anti-Repetitive-Übermittlungstechnologie können Benutzer darauf beschränkt werden, ein Formular nur einmal innerhalb eines bestimmten Zeitraums einzureichen.

Das Folgende ist ein Codebeispiel einer in PHP implementierten Anti-Duplikat-Übermittlungsfunktion:

function preventDuplicateSubmit($callback, $key, $expire) {
    $cache = new Redis();
    $cache->connect('127.0.0.1', 6379); // 连接到Redis服务器

    return function (...$args) use ($callback, $key, $expire, $cache) {
        $token = md5($key . serialize($args));

        if ($cache->set($token, 1, 'nx', 'ex', $expire)) {
            // 缓存不存在,可以执行回调函数
            $callback(...$args);
        } else {
            // 缓存已存在,不能重复提交
            echo '请勿重复提交表单!';
        }
    };
}

Die obige Anti-Duplikat-Übermittlungsfunktion akzeptiert drei Parameter: $callback stellt die Rückruffunktion dar, die ausgeführt werden muss, und $key wird verwendet Um einen eindeutigen Cache-Schlüssel zu generieren, stellt $expire eine Zeichenfolge dar, die die Cache-Ablaufzeit darstellt. Wenn diese Funktion aufgerufen wird, wird eine neue Funktion als Handler für das Formularübermittlungsereignis zurückgegeben. Diese Funktion serialisiert die Parameter des Formulars und verkettet sie mit $key zu einem eindeutigen Cache-Schlüssel. Wenn der Cache-Schlüssel nicht vorhanden ist, wird die Rückruffunktion ausgeführt, andernfalls wird der Benutzer aufgefordert, das Formular nicht erneut zu senden.

Im tatsächlichen Einsatz können je nach Situation die geeigneten Anti-Shake- und Anti-Resubmission-Zeitintervalle ausgewählt werden. Durch den ordnungsgemäßen Einsatz von Anti-Shake- und Anti-Resubmission-Technologien kann das interaktive Erlebnis des Benutzers verbessert, die Belastung des Servers verringert und die Anwendungsleistung verbessert werden.

Das Obige ist eine Einführung in die Anti-Shake- und Anti-Duplicate-Übermittlungstechnologie in PHP und enthält auch spezifische Codebeispiele. Es besteht die Hoffnung, dass Leser diese Technologien nutzen können, um das Benutzerinteraktionserlebnis von Websites und Anwendungen zu optimieren und die Benutzerzufriedenheit zu verbessern.

Das obige ist der detaillierte Inhalt vonPHP-Anti-Shake- und Anti-Duplicate-Submission-Technologie: einer der Schlüssel zur Optimierung der Benutzerinteraktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn