2011-09-08

Añadir un retraso en la ejecución del javascript

A veces nos interesa retrasar la ejecución de parte del código javascript.

En estos casos podemos usar la funcion "setTimeout(codigo, retraso)" de javascript, donde "codigo" es el código javascript que queremos que se ejecute con retraso y "retraso" es el tiempo en milisegundos que se va a retrasar la ejecución.

Además la función "setTimeout" devuelve un identificador que podemos usar para cancelar la ejecución retrasada mediante la función "clearTimeout(id)".

En el siguiente ejemplo, que forma parte de un controlador de evento que se dispara cada vez que el usuario desplaza el mapa de google, lo podemos ver más claramente.

google.maps.event.addListener(map, 'bounds_changed', function() {
  var timer = nioos.timer;
  clearTimeout(timer);
  timer = setTimeout(boundsChangedListener, 3000);
  nioos.timer = timer;
});

La línea
var timer = nioos.timer;
recoge el identificador del retraso actuál, si es que existe uno.

La línea
clearTimeout(timer);
cancela el retraso actuál, si es que existe uno.


La línea
timer = setTimeout(boundsChangedListener, 3000);
crea un retraso de 3 segundos en la ejecución de la función "boundsChangedListener".


La línea
nioos.timer = timer;
almacena el identificador del retraso para poder usarlo más tarde si nos hace falta.

Sencillo y útil, ¿verdad?





No hay comentarios:

Publicar un comentario