Maison > interface Web > js tutoriel > Comment puis-je retarder les gestionnaires d'événements Keyup pour empêcher les actions excessives lors de la saisie par l'utilisateur ?

Comment puis-je retarder les gestionnaires d'événements Keyup pour empêcher les actions excessives lors de la saisie par l'utilisateur ?

Mary-Kate Olsen
Libérer: 2024-12-12 22:36:18
original
479 Les gens l'ont consulté

How Can I Delay Keyup Event Handlers to Prevent Excessive Actions During User Typing?

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 :

  • rappel : La fonction à exécuter après le délai.
  • ms: Le délai en millisecondes (facultatif ; la valeur par défaut est 0).

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);
  };
}
Copier après la connexion

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));
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal