sexta-feira, 14 de maio de 2010

Sleep em Java Script

O Stoyan Stefanov publicou uma função que simula a função sleep() do PHP no Javascript. Esta função serve para atrasar a execução do script.

Função:
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) { if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}

chamando a função para um intervalo de 2 segundo (2000 milisegundos) coloque entre <head></head>

<script>
alert("Teremos um intervalo de 2 segundo até a proxima mensagem)
sleep(2000)
alert("Eu não te disse")
</script>

2 comentários:

Carlos disse...

Esse método é estremamente ineficiente, pois tem-se o que chamamos de Busy wait! Funcionar até funciona, mas imagina um sleep de 1 minuto! A CPU vai a 100%!

Não haveria alguma outra forma usando setTimeout?

falows

Adriano Moura disse...

Realmente o sistema ira parar se houver um tempo muito longo no sleep.

Mas vc percebe que o mesmo aconteceria se por acaso vc fizesse um script longo, pode ser inclusive que vc precise de um sleep de 3 minutos, a questão é quando o usuario percebe a demora ele fecha o navegador, utilize apenas no necessário