Maison > interface Web > js tutoriel > Comprendre `setTimeout` et `setInterval` en JavaScript

Comprendre `setTimeout` et `setInterval` en JavaScript

WBOY
Libérer: 2024-07-17 19:23:10
original
1025 Les gens l'ont consulté

Understanding `setTimeout` and `setInterval` in JavaScript

JavaScript propose plusieurs façons de gérer les événements de synchronisation, et deux des méthodes les plus couramment utilisées sont setTimeout et setInterval. Ces fonctions vous permettent de planifier l'exécution de code après une durée spécifiée ou de manière répétée à intervalles réguliers. Dans cet article, nous explorerons le fonctionnement de ces fonctions et fournirons des exemples pratiques pour illustrer leur utilisation.

setTimeout

La fonction setTimeout est utilisée pour exécuter une fonction ou un morceau de code une fois après un délai spécifié. La syntaxe de setTimeout est la suivante :

setTimeout(function, delay, [arg1, arg2, ...]);
Copier après la connexion
  • function : La fonction ou le code à exécuter.
  • delay : Le temps en millisecondes à attendre avant d'exécuter la fonction.
  • [arg1, arg2, ...] : Arguments facultatifs à transmettre à la fonction lors de son exécution.

Exemple 1 : utilisation de base

function sayHello() {
  console.log('Hello, World!');
}

setTimeout(sayHello, 2000); // Outputs "Hello, World!" after 2 seconds
Copier après la connexion

Dans cet exemple, la fonction sayHello est exécutée une fois après un délai de 2 secondes.

Exemple 2 : Passer des arguments

function greet(name) {
  console.log('Hello, ' + name + '!');
}

setTimeout(greet, 2000, 'Alice'); // Outputs "Hello, Alice!" after 2 seconds
Copier après la connexion

Ici, nous passons l'argument 'Alice' à la fonction greet, qui est exécutée après un délai de 2 secondes.

Exemple 3 : Utilisation de fonctions anonymes

setTimeout(function() {
  console.log('This is an anonymous function!');
}, 3000); // Outputs "This is an anonymous function!" after 3 seconds
Copier après la connexion

Vous pouvez également utiliser des fonctions anonymes directement dans setTimeout.

définirIntervalle

La fonction setInterval est utilisée pour exécuter une fonction ou un morceau de code à plusieurs reprises à des intervalles spécifiés. La syntaxe de setInterval est similaire à setTimeout :

setInterval(function, interval, [arg1, arg2, ...]);
Copier après la connexion
  • function : La fonction ou le code à exécuter.
  • intervalle : le temps en millisecondes entre chaque exécution.
  • [arg1, arg2, ...] : Arguments facultatifs à transmettre à la fonction à chaque fois qu'elle est exécutée.

Exemple 1 : utilisation de base

function sayHello() {
  console.log('Hello, World!');
}

setInterval(sayHello, 1000); // Outputs "Hello, World!" every 1 second
Copier après la connexion

Dans cet exemple, la fonction sayHello est exécutée toutes les secondes.

Exemple 2 : Passer des arguments

function greet(name) {
  console.log('Hello, ' + name + '!');
}

setInterval(greet, 1000, 'Alice'); // Outputs "Hello, Alice!" every 1 second
Copier après la connexion

Ici, nous passons l'argument 'Alice' à la fonction greet, qui est exécutée toutes les secondes.

Exemple 3 : Utilisation de fonctions anonymes

setInterval(function() {
  console.log('This is an anonymous function!');
}, 2000); // Outputs "This is an anonymous function!" every 2 seconds
Copier après la connexion

Vous pouvez également utiliser des fonctions anonymes directement dans setInterval.

Effacement des minuteries

setTimeout et setInterval renvoient tous deux un ID de minuterie, qui peut être utilisé pour effacer les minuteries si nécessaire. Cela se fait en utilisant respectivement les fonctions clearTimeout et clearInterval.

Exemple : Effacement de setTimeout

const timeoutId = setTimeout(function() {
  console.log('This will not run.');
}, 5000);

clearTimeout(timeoutId); // Cancels the timeout
Copier après la connexion

Exemple : Effacement de setInterval

const intervalId = setInterval(function() {
  console.log('This will run only once.');
}, 1000);

setTimeout(function() {
  clearInterval(intervalId); // Stops the interval after 3 seconds
}, 3000);
Copier après la connexion

Dans cet exemple, la fonction clearInterval est appelée après 3 secondes, arrêtant l'exécution répétée de la fonction.

Cas d'utilisation pratiques

1. Anti-rebond avec setTimeout

L'anti-rebond est une technique permettant de limiter la vitesse à laquelle une fonction est exécutée. Par exemple, vous pouvez utiliser setTimeout pour empêcher le rebond d'un champ de saisie de recherche :

let timeoutId;

function debounceSearch(query) {
  clearTimeout(timeoutId);
  timeoutId = setTimeout(function() {
    // Perform search operation
    console.log('Searching for:', query);
  }, 300);
}

document.getElementById('searchInput').addEventListener('input', function(event) {
  debounceSearch(event.target.value);
});
Copier après la connexion

2. Création d'une minuterie simple avec setInterval

let seconds = 0;

function updateTimer() {
  seconds++;
  console.log('Timer:', seconds);
}

const timerId = setInterval(updateTimer, 1000);

// Stop the timer after 10 seconds
setTimeout(function() {
  clearInterval(timerId);
  console.log('Timer stopped');
}, 10000);
Copier après la connexion

Conclusion

Comprendre setTimeout et setInterval est essentiel pour gérer les actions chronométrées et répétées en JavaScript. Ces fonctions vous permettent de gérer des tâches telles que l'anti-rebond des entrées utilisateur, la création de minuteries et l'exécution de mises à jour périodiques. En maîtrisant ces outils, vous pouvez créer des applications Web plus réactives et efficaces.

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:dev.to
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal