Gérer les fonctions planifiées avec setInterval et clearInterval
Considérez le fragment de code suivant :
function doKeyDown(event) { switch (event.keyCode) { case 32: /* Space bar was pressed */ if (x == 4) { setInterval(drawAll, 20); } else { setInterval(drawAll, 20); x += dx; } break; } }
L'objectif est de appelez la fonction drawAll une seule fois, ne créez pas de boucle qui invoque à plusieurs reprises it.
Utiliser clearInterval pour arrêter l'exécution récurrente
setInterval établit une minuterie récurrente qui appelle périodiquement la fonction spécifiée. Pour arrêter son exécution, nous pouvons utiliser clearInterval. Voici comment cela fonctionne :
var handle = setInterval(drawAll, 20); // When you want to stop it: clearInterval(handle); handle = 0; // Indication of an uncleared interval
Sur les navigateurs, le handle est garanti comme étant une valeur numérique non nulle. Ainsi, définir handle = 0 sert d'indicateur pratique pour indiquer que l'intervalle a été effacé.
Planification d'un appel de fonction unique
Si l'intention est de exécutez une fonction une seule fois, envisagez plutôt d'utiliser setTimeout. Cette fonction planifie l'invocation d'une fonction après un intervalle de temps spécifié, mais ne continue pas à la déclencher par la suite. Il renvoie également une poignée pour une annulation potentielle.
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!