setTimeout(func, x)
Ejecuta el código func al pasar x milisegundos. Parámetros:- func: función anónima, nombre de una función o variable que apunta a una función
- x: el número de milisegundos de retraso
Así si, por ejemplo, queremos mostrar un mensaje a los tres segundos de cargar una página escribiremos el siguiente script antes de </body>
<script type="application/javascript"> setTimeout( function(){ alert('Bienvenido'); }, 3000 ); </script>o bien:
<script type="application/javascript"> function saludo(){ alert('Bienvenido'); } setTimeout(saludo, 3000); </script>La mayor pega de esta versión de setTimeout() es que no permite el paso de parámetros a la función llamada, así que para tales casos tendrás que recurrir a rodeos como usar variables globales y similares. Sin embargo, si no necesitas dar soporte a Internet Explorer 9 e inferiores, podrás usar la versión más reciente de setTimeout() con soporte para paso de parámetros (en las referencias del final tienes más detalles). Su cabecera es:
setTimeout(func, retraso, param1, param2, ...) y puedes usarla de la siguiente forma:
function saludo(nombre){ alert('Bienvenido ' + nombre); } setTimeout(saludo, 2000, usuario);Como has podido intuir, setTimeout() sólo se ejecuta una vez. ¿Qué pasa si queremos ejecutar de forma reiterada una función? Aquí entra en escena setInterval().
setInterval(func, x)
Ejecuta el código func cada x milisegundos. Parámetros:- func: función anónima, nombre de una función o variable que apunta a una función
- x: el número de milisegundos de intervalo entre ejecuciones
Veamos cómo ejecutaríamos el ejemplo de antes cada 3 segundos:
<script type="application/javascript"> function saludo(){ alert('Bienvenido'); } setInterval(saludo, 3000); </script>
Como ves, su uso es similar a setTimeout, y al igual que este, dispone de una versión más actual con soporte para paso de parámetros. Puedes ver más información siguiendo los enlaces de las referencias.
Referencias: setTimeout en MDN, setInterval en MDN, JavaScript Timers en MDN
No hay comentarios:
Publicar un comentario