Contrôle des minuteries récurrentes avec setInterval et clearInterval
Dans votre code, vous aviez pour objectif d'invoquer drawAll() une fois lorsqu'une touche spécifique était enfoncée. Cependant, la fonction setInterval établit un minuteur récurrent qui appelle drawAll() à plusieurs reprises. Pour résoudre ce problème, nous pouvons utiliser clearInterval pour arrêter l'exécution de la boucle de minuterie.
setInterval crée une minuterie récurrente et renvoie un handle. Ce handle sert d'identifiant qui peut être utilisé par clearInterval pour empêcher le déclenchement du minuteur. Voici comment cela fonctionne :
var handle = setInterval(drawAll, 20); // When you want to cancel it: clearInterval(handle); handle = 0; // This marks the interval as cleared
Sur les navigateurs, le handle est garanti être un nombre non nul. Par conséquent, l'utilisation de 0 comme valeur de handle indique qu'aucune minuterie n'est définie.
Pour planifier le déclenchement d'une fonction une seule fois, vous pouvez utiliser setTimeout au lieu de setInterval. setTimeout exécute une fonction une fois après un délai spécifié. Il renvoie un handle qui peut être utilisé avec clearTimeout pour annuler l'appel de fonction avant son exécution si nécessaire :
setTimeout(drawAll, 20);
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!