Dioniton Postado Agosto 19, 2009 Denunciar Share Postado Agosto 19, 2009 Estou precisando adicionar um intervalo de tempo entre a execução de duas funções no javascript, como posso fazer isto? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 SK15 Postado Agosto 19, 2009 Denunciar Share Postado Agosto 19, 2009 (editado) Função especifica ´built-in´ não ... mas você pode criar sua própria ...http://www.phpied.com/sleep-in-javascript/http://www.ozzu.com/programming-forum/java...ion-t66049.html Editado Agosto 19, 2009 por SK15 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Agosto 19, 2009 Denunciar Share Postado Agosto 19, 2009 Não recomendo que faça isso, até porque o navegador irá ficar "travado".Procure pelas funções setInterval e setTimeout. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Danilo Moraes Postado Agosto 20, 2009 Denunciar Share Postado Agosto 20, 2009 Resuminho rapido: setInterval() vai ficar executando a funcao que tu determinar como parametro. já a setTimout() vai esperar um determinado tempo (em milisegundos) e depois executar uma unica vez a sua funcao.T+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 SK15 Postado Agosto 20, 2009 Denunciar Share Postado Agosto 20, 2009 setInterval e setTimeout ... são tão ruins quanto ... Só tive/tenho dor de cabeça com elas ... kkkkk Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Agosto 20, 2009 Denunciar Share Postado Agosto 20, 2009 As funções setInterval e setTimeout não são perfeita, mas são a melhor forma de se fazer isso.Essa função sleep se baseia em um loop que só pára quando o tempo se passa, deixando o navegador "travado".Já viram algum site que utiliza AJAX de forma síncrona ?Se não tiveram a oporunidade de testar, vejam esse link: http://www.tableless.com.br/artigos/ajaxdemo2, mais precisamente no terceiro artigo (XmlHTTPRequest e Threads)É realmente muito irritante o navegador travado dessa forma. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Danilo Moraes Postado Agosto 21, 2009 Denunciar Share Postado Agosto 21, 2009 Tipo, vou dar uma esplicada so pra intenderem o porque que fica travado. Um erro que muitos cometem, é dizer que ajax faz a mesma coisa que threads. Resumindo, thread é processamento paralelo, onde você faz 2 coisas ao mesmo tempo e o ajax não usa processamento paralelo e sim processamento assincrono.O que significa o assincrono do ajax? SImples: Ele faz um teste para ver qual codigo/funcao executara mais rapido primeiro e então executa ele primeiro. Por isso da a impressao de que o objeto XMLHttpRequest, faz 2 coisas ao mesmo tempo, porque ele sempre faz primeiro akilo que e mais rapido. Bom, resumao de tudo isso é que javascript não trabalha com threads, sendo assim, ajax tmb não já que ajax é puro javascript de maneira assincrona(não paralela :P).então, o for é uma funcao (na verdade é uma construcao da linguagem, mas vamos deichar isso de lado :D), e por ser uma funcao, ela é considerada num escopo geral como um unico codigo. Se o XMLHttpRequest tivece que escolher qual executar primeiro, ele testaria se a funcao vai terminar mais rapido ou não. Mas assim, não se faz testes consecutivos dessa maneira pra nada! O principal erro que os desenvolvedores de jogos iniciantes cometem, é fazer as animacoes dos personagens, na velocidade que o processador consegue seguir. Se o processador for deichado livre para percorrer um loop, ele vai ficar naquilo ate o loop terminar e vai deichar de fazer o resto. Como javascript não trabalha com processamento paralelo, assim que o interpretador entrar naquele loop, so vai fazer outra coisa quando tiver saido do loop.Mas agora, me respondam uma coisa: o que exatamente esse sleep deveria fazer que já não faz? O sleep do php tmb trava tudo ate que o tempo passado como parametro termine. A desvantagem é que todo o resto fica travado mas se levar em consideracao de que javascript não tem threads e que mesmo que não fique travado, ele não podera fazer nada, então essa funcao é bem apropriada. No que exatamente tu precisa usar uma funcao sleep? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Dioniton Postado Agosto 25, 2009 Autor Denunciar Share Postado Agosto 25, 2009 (editado) preciso somente dar um intervalo entre a execução de duas funções no javascript, por exemplo executa função x, daqui alguns segundo execute a função Z.OBsPessoal desculpe por demorar a dar continuidade do tópico, mas é que estava muito corrido a minha vida nos últimos dias. Estava envolvido com o meu casamento e tal aquelas coisas que deixam a gente quase sem cabelo antes do casamento, festa, convidados, etc. Editado Agosto 25, 2009 por Dioniton Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Agosto 25, 2009 Denunciar Share Postado Agosto 25, 2009 O tópico pode ser marcado como Resolvido ?Danilo, a função sleep cria uma variável armazenando uma data que é igual à atual somada a alguns segundos (passados como parâmetro) e cria um loop até que o tempo atual chegue até essa variável. Isso deixa o navegador totalmente travado.Citei como exemplo o AJAX de forma síncrona porque o que ocorre é bem parecido. Note que nesse intervalo de tempo você não pode sequer clicar em algum link. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Dioniton Postado Setembro 3, 2009 Autor Denunciar Share Postado Setembro 3, 2009 Sim pode marcar o tópico como resolvido! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Danilo Moraes Postado Setembro 3, 2009 Denunciar Share Postado Setembro 3, 2009 Danilo, a função sleep cria uma variável armazenando uma data que é igual à atual somada a alguns segundos (passados como parâmetro) e cria um loop até que o tempo atual chegue até essa variável. Isso deixa o navegador totalmente travado.Citei como exemplo o AJAX de forma síncrona porque o que ocorre é bem parecido. Note que nesse intervalo de tempo você não pode sequer clicar em algum link.O que ela fazia eu já sabia, o meu questionamento foi com relacao a diferenca (falando a nivel de interpretador) entre usar um setTimeOut por exemplo e um sleep...Levando em consideracao que javascript não implementa threads, a unica vantagem de utilizar setTimeOut é que ela não trava o navegador... Mas é meio problematica, infelizmente :SPor mim pode fecha o tópico ^^ Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Dioniton
Estou precisando adicionar um intervalo de tempo entre a execução de duas funções no javascript, como posso fazer isto?
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.