Maison >interface Web >js tutoriel >Comment puis-je retarder un gestionnaire de saisie pour éviter des requêtes AJAX excessives lors de la saisie par l'utilisateur ?
Retarde le gestionnaire .keyup() pour l'arrêt de la saisie par l'utilisateur
Dans un champ de recherche, des recherches AJAX immédiates pour chaque pression sur une touche peuvent entraîner trafic excessif. Pour atténuer cela, il est souhaitable d'implémenter un délai, autorisant les recherches uniquement lorsque les utilisateurs cessent de taper.
Pour y parvenir, l'extrait de code fourni utilise la fonction delay(). Cette fonction exécute un rappel après une heure spécifiée ou lors de déclenchements rapides d'événements comme le redimensionnement. Voici comment elle peut être utilisée :
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); }; } // Example usage: $('#input').keyup(delay(function (e) { console.log('Time elapsed!', this.value); }, 500));
Dans cet exemple, la fonction delay() est utilisée pour retarder l'exécution d'un journal de console lorsque les utilisateurs arrêtent de taper dans le champ #input pendant 500 millisecondes. Cela garantit que la recherche AJAX n'est effectuée qu'une fois que les utilisateurs ont terminé leur saisie.
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!