Retarder le gestionnaire d'événements Keyup pour l'arrêt de la saisie par l'utilisateur
Dans une interface utilisateur interactive, il est souvent souhaitable d'exécuter des actions uniquement une fois que l'utilisateur a terminé saisie de données. Considérons un champ de recherche qui effectue des requêtes AJAX sur chaque saisie. Par défaut, cela entraînerait une multitude de requêtes de recherche, même pour les chaînes d'entrée les plus courtes.
Pour éviter ces requêtes excessives et améliorer l'expérience utilisateur, nous pouvons implémenter un mécanisme de retard qui n'effectue des actions qu'après une période spécifiée. d'inactivité. Bien que la fonction keyup native ne dispose pas de fonctionnalité de retard intégrée, nous pouvons atteindre notre objectif en utilisant une fonction simple appelée delay.
La fonction de retard prend deux arguments :
La fonction de retard crée essentiellement un régulateur, empêchant le rappel d'être appelé trop fréquemment. Voici un exemple d'implémentation :
function delay(callback, ms) { var timer = 0; return function() { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function () { callback.apply(context, args); }, ms || 0); }; }
Pour appliquer ce délai à votre champ de recherche, vous pouvez l'utiliser comme suit :
$('#input').keyup(delay(function (e) { // Perform your search logic here }, 500));
Ici, la logique de recherche ne sera exécutée que 500 millisecondes après le dernier événement keyup, offrant une expérience beaucoup plus conviviale.
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!