Pessoal tenho esta função que vai colocando “.” em uma mensagem de Aguarde… O problema que desta maneira esta sendo criado variáveis threads.
E mesmo eu fazendo,
window.clearTimeout(timeAguarde);
já foram criadas várias…
[quote=dmarcosm]Não seria algo assim que você gostaria não?!
[code]
var timeAguarde = null;
function mostrarAguarde() {
var span = document.getElementById("mensagemCarregando");
if (span.innerHTML.length < 12) {
span.innerHTML += ".";
} else {
span.innerHTML = "Aguarde";
}
timeAguarde = setTimeout("mostrarAguarde()", 200);
}
[code][/quote]
Cada vez que vc chama o mostrarAguarde é criado um novo processo pelo setTimeout("mostrarAguarde()", 200);
E quando vc for parar clearTimeout(timeAguarde); ele só vai parar o último processo que foi criado. :x
Na verdade ele não para o último. A função clearTimeout simplesmente impede que o timeout que você fez anteriormente seja executado. A cada setTimeout ele coloca dentro daquela variável o código e o tempo que falta para executá-lo novamente. Com o clear você cancela a chamada ou método!
Copia o código HTML e roda ele na sua máquina que você vai ver! =]
[quote=dmarcosm]Na verdade ele não para o último. A função clearTimeout simplesmente impede que o timeout que você fez anteriormente seja executado. A cada setTimeout ele coloca dentro daquela variável o código e o tempo que falta para executá-lo novamente. Com o clear você cancela a chamada ou método!
Copia o código HTML e roda ele na sua máquina que você vai ver! =][/quote]
Entendi, eu achava que toda vez que ele passava pelo setTimeout era criando um novo processo.
Valeu.
[]'s