Maison  >  Article  >  développement back-end  >  Meilleures pratiques pour l'anti-shake et l'anti-resoumission en PHP

Meilleures pratiques pour l'anti-shake et l'anti-resoumission en PHP

WBOY
WBOYoriginal
2023-10-12 08:19:051288parcourir

PHP 中实现防抖和防重复提交的最佳实践方法

Meilleures pratiques pour obtenir une soumission anti-shake et anti-récidive en PHP

Introduction :
Lors du développement d'applications Web, nous rencontrons souvent des problèmes qui doivent éviter des soumissions répétées ou des déclenchements trop rapides. Ces problèmes peuvent entraîner des opérations inutiles ou une pression excessive sur le serveur. Afin de résoudre ces problèmes, nous pouvons utiliser les méthodes anti-shake et anti-resoumission en PHP pour limiter le comportement des utilisateurs.

Qu'est-ce que l'anti-secousse ?
L'anti-shake est une méthode permettant de limiter le nombre d'opérations en ignorant les déclenchements répétés pendant un certain temps. Une fois que l'utilisateur a déclenché une opération, si la même opération est déclenchée à nouveau dans un certain laps de temps, la méthode anti-tremblement ignorera les opérations ultérieures. Cela évite les problèmes de performances causés par le déclenchement fréquent d’opérations.

La méthode pour obtenir l'anti-shake est la suivante :

function debounce($callback, $delay) {
    $timer = null;
    return function() use ($callback, $delay, &$timer) {
        if ($timer) {
            clearTimeout($timer);
        }
        $timer = setTimeout(function() use ($callback) {
            call_user_func_array($callback, func_get_args());
        }, $delay);
    };
}

// 使用示例:
$debouncedFunction = debounce(function() {
    // 防抖操作的具体逻辑
}, 1000);

$debouncedFunction();
$debouncedFunction();
$debouncedFunction();
// 只会执行一次 防抖操作的具体逻辑

Qu'est-ce que la soumission anti-duplicata ?
La soumission anti-répétée fait référence au fait d'empêcher les utilisateurs de soumettre à nouveau la même opération une fois qu'une opération a été soumise. Ceci est généralement très utile dans les scénarios de soumission de formulaires pour éviter que les utilisateurs soumettent les mêmes données plusieurs fois, ce qui entraînerait une duplication des données.

La méthode pour mettre en œuvre la soumission anti-doublon est la suivante :

function preventDuplicateSubmission($formName) {
    session_start();
  
    if(isset($_SESSION[$formName]) && $_SESSION[$formName] == true){
        // 已经提交过相同的操作
        return false;
    } else {
        // 第一次提交这个操作
        $_SESSION[$formName] = true;
        return true;
    }
}

// 使用示例:
$formName = "submit_form";
if(preventDuplicateSubmission($formName)){
    // 执行表单提交操作的代码
} else {
    // 阻止重复提交的提示
    echo "请勿重复提交!";
}

Conclusion :
La soumission anti-shake et anti-duplicata sont des méthodes courantes pour réduire les opérations inutiles et protéger le serveur. En utilisant les meilleures pratiques anti-rebond et anti-resoumission en PHP, nous pouvons éviter de déclencher des actions à plusieurs reprises et empêcher les utilisateurs de soumettre le même formulaire plusieurs fois. Les exemples de code fournis ci-dessus peuvent vous aider à implémenter ces fonctions et à améliorer les performances et l'expérience utilisateur de vos applications Web. J'espère que ces méthodes pourront être utiles à votre travail de développement.

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