• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

vaurdan

Adicionar um valor a cada segundo

14 mensagens neste tópico

Boas!

tenho andado a brincar com o javascript, mas agora encontrei-me com um problema que não sei resolver.

Tipo, tenho o valor x, e quero que a cada segundo aumente 1 valor, e que o valor seja automáticamente actualizado na página (Tipo ajax)

Tipo na pagina vemos la escrito:

Valor: 1

e no segundo a seguir ja aparece

Valor: 2

Grato pela ajuda :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tenta com

window.setTimeout('codigoAExecutar()',timeInMilliseconds);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hmmm... Não percebi :S

Podes fazer um exemplo de código?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
var cenas = 0;

window.setTimeout('codigoAExecutar()', 1000);

function codigoAExecutar() {
cenas++;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@Nazgulled: Isso não ia executar o código só uma vez?

Um exemplo meu..

var x=0;
function adicionarValor(){
x++;
document.getElementById("valorAqui").innerHTML=x;
setTimeout("adicionarValor()",1000);
}

E em HTML:

<body onload="adicionarValor();">

<!-- E.. -->

<span id="valorAqui">0</span>

Tens aí um exemplo :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não dumpster o nazgulled está certo.

está certo porquê? não executa só 1 vez ?

@W3C

<html>
<head>
<script type="text/javascript">
var c=0;
var t;
function timedCount()
{
document.getElementById('txt').value=c;
c=c+1;
t=setTimeout("timedCount()",1000);
}
</script>
</head>

<body>
<form>
<input type="button" value="Start count!" onClick="timedCount()">
<input type="text" id="txt">
</form>
<p>Click on the button above. The input field will count for ever, starting at 0.</p>
</body>

</html>


0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não dumpster o nazgulled está certo.

Epah, eu não vejo como é que executaria mais que uma vez.. mas o..k..?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O codigo do Dumpster funciona prefeitamente :P Realmente também não vejo como o do Nazgulled executaria mais que uma vez.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Enganei-me, deixe-me levar pela sugestão do vitortomaz, o que eu queria fazer era isto:

var cenas = 0;

setInterval('codigoAExecutar()', 1000);

function codigoAExecutar() {
cenas++;
}

Penso que isto já funciona.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois... é isso lol

Li à pressa, pensava que tinhas posto window.setInterval

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já agora,

como faço para a cada X segundos adicionar uma row a uma tabela?

Faço tipo:

var x=0;
function adicionarValor(){
x++;
document.write("<td>blabla</td>"); //Adicionando isto por exemplo?
document.getElementById("valorAqui").innerHTML=x;
setTimeout("adicionarValor()",1000);
}

Será que me poderiam ajudar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Essas rows vão conter o x ou nem por isso? o.o

É porque se for só random content, então o que tens aí deve trabalhar (não esquecendo as <table></table> e os <tr></tr>'s) :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas, primeiro penso que devias criar 3 metodos um para incrementares e outro para chamar a funçao que incrementa a cada segundo usando o setInterval ( "kkcoisa()", 1000 ); e um ultimo para parares o setInterval visto que ele nao tem capacidade de parar sozinho.

setTimeOut(...) executa o codigo apenas uma vez apos o tempo escolhido

setInterval(...) executa o codigo a cada intervalo de tempo escolhido

a meu ver deverias ter algo como

NOTA: Peço pff que algum me edite o post para por isto com o genshi porque eu n consigo usar isto :P n funciona com web proxys

//js

var coisas=0;

var varIntervalId = 0; //para depois podermos parar o setInterval

function add()

{

  coisas++;

}

function beginAddInterval(_interval)

{

varIntervalId=setInterval("add",_interval);

}

function clearAddInterval()

{

  if(varIntervalId == 0 )

  {

    clearInterval ( varIntervalId );

    varIntervalId  = 0 ;

  }

}

//js

quanto a tabela o melhor que tens a fazer (na minha opiniao) é criares um elemento e depois fazeres apend child algo do genero

//js

var tbl = document.getElementById("aMinhaTabela");

var tr = document.createElement("tr");

tr.class="rozinha";

var td1 = document.createElement("td");

td1.innerText = "ola";

var td2 = document.createElement("td");

td2.innerText = "adeus";

tr.appendChild(td1);

tr.appendChild(td2);

tbl.appendChild(tr);

//js

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora