Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

leandro_moh

[Resolvido] Problema com SetInterval()

Recommended Posts

estou estudando a função setinterval e pelo que entendi ele executa um determinado codigo de tempo em tempos. Fiz um código para teste. Porém o mesmo não funcionou após executar a 1º rodada, gostaria que pudessem me ajudar a achar o erro.

 

Obrigado desde já.

 

 

<script type="text/javascript">

var x=0;

function escreve_x()
{
document.write(x+'<br>');
x++;
}


setInterval('escreve_x()', 1000);

</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema do teu script, é o document.write

 

<div id="resp"></div>
<script type="text/javascript">
var x=0;

function escreve_x()
{
       document.getElementById('resp').innerHTML += x+'<br>';
       x++;
}
setInterval(escreve_x, 1000);
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda, William Bruno.

 

Porém fiquei com algumas duvidas, e gostaria que você (ou alguém que também souber) pudesse me exclarece-las.

 

Tem alguma restrição do

document.write

para o SetInterval ou SetTimeout ??

 

Há outras restrições para o SetInterval ou SetTimeout ?

 

Outra duvida, pelo que eu sei o operador "+=" soma o "conteudo" da direita com o da esquerda e atribui o resultado a variavel da esquera.

 

exemplo:

 

var x=10, y=20;

x+=y; //equivale a  -> " x = x + y "

 

ou seja, na primeira rodada do seu código x = 0, na segunda x não deveria ser "01" e na terceira "012" e assim sucessivamente ja que ele soma oque ja tem com o valor de x da rodada?

 

0 //1º rodada

 

0 //2º rodada

1 //2º rodada

 

0 //3º rodada

1 //3º rodada

2 //3º rodada

 

0 //4º rodada

1 //4º rodada

2 //4º rodada

3 //4º rodada

 

Grato desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O setTimeout executa a função 1 vez a cada intervalo de tempo, já o setInterval executa n (várias) vezes a cada intervalo.

 

Portanto, nessa situação você teria que usar o setTimeout, ao invés do setInterval.

 

E com relação ao uso do document.write, o correto é usar ele apenas uma vez, quando a página carrega, pois se você vai usar ele com a página já carregada, o mesmo vai sobrescrever todo o conteúdo da página.

Compartilhar este post


Link para o post
Compartilhar em outros sites

51L3N7, oque eu queria fazer é oque o código do william bruno mostrou. Do codigo do william bruno eu entendi tudo, apenas não havia entendido o porque do erro com o "document.write" no meu codigo, que você me exclareceu.

 

Obrigado a todos pela ajuda na solução do problema, graça as ajudas consegui fazer oque eu queria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.