Exécution de requêtes Ajax à la fin de la saisie de l'utilisateur
De nombreuses applications nécessitent le déclenchement d'actions lors de la saisie de l'utilisateur en temps réel. Cependant, il peut s'avérer inefficace d'exécuter les requêtes du serveur à chaque frappe, car cela peut inonder le système et potentiellement submerger le serveur. Cela est particulièrement vrai dans des situations telles que la saisie dans un champ de recherche, où de nombreuses requêtes seraient générées.
Mise en œuvre d'une détection d'achèvement de saisie
Pour résoudre ce problème, une solution consiste à détecter lorsque l'utilisateur a fini de taper avant de lancer la requête ajax. Ceci peut être réalisé en configurant une minuterie. Voici comment cela fonctionne :
Initialisation de la minuterie :
Démarrage/réinitialisation de la minuterie :
Arrêt de la minuterie :
Exécution de l'action :
Exemple de code utilisant jQuery :
var typingTimer; //timer identifier var doneTypingInterval = 5000; //time in ms, 5 seconds for example var $input = $('#myInput'); //on keyup, start the countdown $input.on('keyup', function () { clearTimeout(typingTimer); typingTimer = setTimeout(doneTyping, doneTypingInterval); }); //on keydown, clear the countdown $input.on('keydown', function () { clearTimeout(typingTimer); }); //user is "finished typing," do something function doneTyping () { //do something, such as execute your ajax request }
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!