Maison  >  Article  >  développement back-end  >  Analyse et comparaison des effets réels de la soumission anti-shake et anti-duplicata PHP

Analyse et comparaison des effets réels de la soumission anti-shake et anti-duplicata PHP

WBOY
WBOYoriginal
2023-10-12 09:16:481190parcourir

PHP 防抖和防重复提交的实际效果分析与比较

Analyse PHP et comparaison des effets réels de la soumission anti-shake et anti-duplicata

La soumission anti-shake et anti-duplicata sont deux moyens techniques courants dans le développement Web. Ils peuvent permettre aux utilisateurs d'avoir une meilleure expérience pendant les opérations tout en garantissant l'exactitude et la sécurité des données. Dans le développement PHP, l'utilisation de mécanismes anti-shake et anti-resoumission appropriés peut améliorer efficacement la fiabilité et les performances du système.

1. Mécanisme anti-shake

L'anti-shake est une technologie qui évite les événements déclencheurs fréquents en retardant l'exécution. Dans le cas où l'utilisateur clique rapidement et successivement sur des boutons ou des zones de saisie, l'anti-shake peut rendre la dernière opération efficace et ignorer les opérations intermédiaires précédentes. Cela peut résoudre efficacement le problème du gaspillage des ressources système et des erreurs de données causées par des opérations rapides.

En PHP, une simple fonction anti-shake peut être implémentée via le code suivant :

function debounce($func, $wait) {
    $timer = null;
  
    return function () use (&$timer, $func, $wait) {
        if ($timer) {
            clearTimeout($timer);
        }
  
        $timer = setTimeout($func, $wait);
    };
}

Exemple d'utilisation :

$debounceFunc = debounce(function () {
    // 执行操作
}, 1000);

$debounceFunc(); // 连续点击或输入操作时,只有最后一次操作会被执行

En définissant le temps de retard approprié, nous pouvons contrôler le temps effectif de l'anti-shake. Si l'utilisateur effectue une nouvelle opération dans le délai imparti, l'opération précédente sera ignorée, réduisant ainsi les opérations redondantes.

2. Mécanisme de soumission anti-doublon

La soumission anti-doublon est un moyen important pour garantir l'exactitude des données du système. Lorsque l'utilisateur clique fréquemment sur le bouton d'envoi pendant le processus de soumission du formulaire, ou que plusieurs soumissions se produisent en raison de retards du réseau, cela peut entraîner une insertion ou un traitement répété des données. Grâce à un mécanisme de soumission anti-doublon raisonnable, nous pouvons éviter que cette situation ne se produise.

En PHP, un simple mécanisme de soumission anti-doublon peut être implémenté via le code suivant :

function isRepeatedSubmitted($key) {
    return !empty($_SESSION[$key]);
}

function markAsSubmitted($key) {
    $_SESSION[$key] = time();
}

function clearSubmittedMark($key) {
    unset($_SESSION[$key]);
}

Exemple d'utilisation :

session_start();
$submitKey = 'submit_key';

if (isRepeatedSubmitted($submitKey)) {
    // 重复提交处理逻辑
} else {
    // 正常提交处理逻辑
    markAsSubmitted($submitKey);
    // ...
    // 其他处理操作
    // ...
  
    // 重定向到其他页面或进行其他处理
    clearSubmittedMark($submitKey);
}

En jugeant si l'identifiant correspondant existe dans la variable $_SESSION, nous pouvons déterminer si une soumission en double a s'est produit. Afin d'éviter de conserver le logo pendant une longue période, le logo soumis doit être effacé à temps afin que la prochaine opération puisse se dérouler normalement.

3. Analyse et comparaison des effets

Les effets réels des mécanismes de soumission anti-secousse et anti-doublon varient selon les scénarios. L'anti-tremblement convient aux scénarios dans lesquels les utilisateurs opèrent en continu et rapidement, ce qui peut réduire les opérations inutiles et améliorer la vitesse de réponse du système. Le mécanisme de soumission anti-doublon est adapté à la soumission de formulaires et à d'autres exigences, et peut garantir l'exactitude et la sécurité des données.

En utilisation réelle, il est nécessaire de choisir le mécanisme approprié ou de combiner les deux en fonction du scénario commercial spécifique. L'anti-tremblement est principalement utilisé dans le processus d'interaction avec l'utilisateur frontal, tandis que le mécanisme de soumission anti-répétée est davantage utilisé dans le processus de soumission et de traitement des données back-end.

En général, les mécanismes de soumission anti-shake et anti-duplicata sont des moyens techniques couramment utilisés dans le développement Web. En les utilisant de manière appropriée, la fiabilité et les performances du système peuvent être améliorées. Dans le développement PHP, les fonctions anti-shake et anti-resoumission correspondantes peuvent être rapidement implémentées grâce à l'exemple de code simple ci-dessus, mais dans la pratique, une implémentation personnalisée doit encore être effectuée en fonction des besoins spécifiques de l'entreprise.

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