Muita coisa sobre CSS, HTML, Javascript, Search engine optimization (seo), padrões e web
28 Jul
Provavelmente você já precisou executar uma função mais de uma vez, durante um período de tempo ou esperar algum tempo para executá-la pelo menos uma vez.
Se você chegou a pesquisar, provavelmente leu algo sobre setTimeout() e setInterval(). Ambas são funções Javascript que controlam quando uma função deve ser chamada.
O setTimeout() executa a função passada por ele, após o tempo determinado, apenas uma vez. Exemplo:
setTimeout("alert('Olá, apareci depois de 3 segundos.')", 3000);
O código acima faz com que o alert seja executado apenas 3 segundo após a chamada.
Diferentemente da setTimeout(), a função setInterval() executa repetidamente a função passada por ela, em intervalos de tempo iguais.
setInterval("alert('Olá, irei aparecer a cada 5 segundos.')", 5000);
O resultado será um alert a cada 5 segundos. Porém, em certos casos, isso pode ser um inconveniente. Por isso há o clearInterval(), que finaliza o intervalo entre as chamadas.
var num = 0;
objInter = setInterval(function() {
if(num > 5)
{
clearInterval(objInter);
return;
}
alert("Irei aparecer 5x apenas.");
num++;
}, 5000);
Repare que o clearInterval() recebe como parâmetro o objeto do setInterval(), por isso é preciso guardar, em uma variável, esse objeto (no caso, a variável é objInter).
Obs.: Muita gente acha que o setTimeout() e o setInterval() interrompem a execução do código, como uma chamada de função, por exemplo. Isso não é verdade. As funções que serão executadas pelo setTimeout() e setInterval() são executadas por traz do código principal. Ou seja, não causam uma pausa.
Leitura recomendada:
Mozilla Developer Center: DOM:window.setTimeout
Mozilla Developer Center: DOM:window.setInterval
Mozilla Developer Center: DOM:window.clearInterval
Leave a reply