Maison >développement back-end >tutoriel php >Technologie PHP anti-shake et anti-duplicate submit : une des clés pour optimiser l'interaction utilisateur

Technologie PHP anti-shake et anti-duplicate submit : une des clés pour optimiser l'interaction utilisateur

WBOY
WBOYoriginal
2023-10-12 12:15:111122parcourir

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

Technologie PHP anti-shake et anti-re-soumission : une des clés pour optimiser l'interaction utilisateur, nécessitant des exemples de codes spécifiques

Avec le développement d'Internet, les utilisateurs ont des exigences de plus en plus élevées en matière d'expérience des sites Web et des applications . Au cours du processus d'interaction avec l'utilisateur, les technologies anti-tremblement et anti-resoumission sont devenues la clé pour optimiser l'expérience utilisateur. Cet article présentera la technologie de soumission anti-shake et anti-duplicata en PHP et fournira des exemples de code spécifiques.

La technologie anti-shake fait référence à la réduction des requêtes inutiles en limitant le nombre de déclencheurs lorsque l'utilisateur effectue une opération en continu. Par exemple, lors d'une recherche dans la zone de saisie utilisateur en temps réel, si une demande de recherche est déclenchée à chaque fois que l'utilisateur saisit une lettre, cela augmentera non seulement la pression sur le serveur, mais apportera également une expérience irrégulière à l'utilisateur. Grâce à la technologie anti-tremblement, l'intervalle de temps de déclenchement des demandes de recherche peut être limité à une certaine période de temps, et la demande de recherche ne sera déclenchée qu'une fois que l'utilisateur aura arrêté de saisir pendant un certain temps.

Ce qui suit est un exemple de code d'une fonction anti-shake implémentée en PHP :

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);
    };
}

La fonction anti-shake ci-dessus accepte deux paramètres : $callback représente la fonction de rappel qui doit être exécutée et $delay représente la limite de l'intervalle de temps de déclenchement. Lorsque cette fonction est appelée, une nouvelle fonction sera renvoyée en tant que gestionnaire d'événement (comme l'événement onkeyup de la zone de saisie). Chaque fois qu'un événement est déclenché, le minuteur précédent sera effacé et un nouveau minuteur sera recréé. . Lorsque l'utilisateur arrête de taper pendant un certain temps, la minuterie déclenche la fonction de rappel.

En plus de la technologie anti-secousse, la technologie de soumission anti-répétitive est également un moyen important d'améliorer l'expérience d'interaction des utilisateurs. Lorsqu'un utilisateur soumet un formulaire, s'il clique plusieurs fois sur le bouton d'envoi, les mêmes données peuvent être soumises à plusieurs reprises, ce qui impose une charge supplémentaire au serveur et provoque même des problèmes imprévisibles. Grâce à la technologie de soumission anti-répétitive, les utilisateurs peuvent être limités à soumettre un formulaire une seule fois au cours d'une période de temps spécifique.

Ce qui suit est un exemple de code d'une fonction de soumission anti-duplication implémentée en PHP :

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 '请勿重复提交表单!';
        }
    };
}

La fonction de soumission anti-duplication ci-dessus accepte trois paramètres : $callback représente la fonction de rappel qui doit être exécutée et $key est utilisé pour générer une clé de cache unique Une chaîne, $expire représente le délai d'expiration du cache. Lorsque cette fonction est appelée, une nouvelle fonction sera renvoyée en tant que gestionnaire pour l'événement de soumission de formulaire. Cette fonction sérialise les paramètres du formulaire et les concatène avec $key dans une clé de cache unique. Si la clé de cache n'existe pas, la fonction de rappel est exécutée sinon, l'utilisateur est invité à ne pas soumettre à nouveau le formulaire.

En utilisation réelle, les intervalles de temps anti-secouement et anti-resoumission appropriés peuvent être sélectionnés en fonction de la situation spécifique. L'utilisation raisonnable des technologies anti-tremblement et anti-resoumission peut améliorer l'expérience interactive de l'utilisateur, réduire la charge sur le serveur et améliorer les performances des applications.

Ce qui précède est une introduction à la technologie de soumission anti-shake et anti-duplicata en PHP, et fournit également des exemples de code spécifiques. On espère que les lecteurs pourront utiliser ces technologies pour optimiser l’expérience d’interaction des utilisateurs sur les sites Web et les applications et améliorer la satisfaction des utilisateurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn