Existe alguma maneira de chamar uma função periodicamente em JavaScript?
javascript
javascript-events
coderex
fonte
fonte
setInterval()
é a resposta correta para a pergunta, independentemente do parâmetro. É apenas um exemplo, e ambos os métodos estão corretos por definição.Observe que setInterval () geralmente não é a melhor solução para execução periódica - depende realmente de qual javascript você está chamando periodicamente.
por exemplo. Se você usar setInterval () com um período de 1000ms e na função periódica fizer uma chamada ajax que ocasionalmente leva 2 segundos para retornar, você fará outra chamada ajax antes que a primeira resposta volte. Isso geralmente é indesejável.
Muitas bibliotecas têm métodos periódicos que protegem contra as armadilhas do uso de setInterval de forma ingenuidade, como o exemplo de Prototype fornecido por Nelson.
Para obter uma execução periódica mais robusta com uma função que possui uma chamada ajax jQuery, considere algo como isto:
Outra abordagem é usar setTimeout, mas rastrear o tempo decorrido em uma variável e, em seguida, definir o atraso de tempo limite em cada chamada dinamicamente para executar uma função o mais próximo possível do intervalo desejado, mas nunca mais rápido do que você pode obter respostas de volta.
fonte
Todo mundo já tem uma solução setTimeout / setInterval. Eu acho que é importante observar que você pode passar funções para setInterval, não apenas strings. Na verdade, é provavelmente um pouco "mais seguro" passar funções reais em vez de strings que serão "avaliadas" para essas funções.
Ou:
fonte
Pergunta antiga, mas .. Eu também precisava de um executor de tarefas periódica e escrevi TaskTimer . Isso também é útil quando você precisa executar várias tarefas em intervalos diferentes.
TaskTimer
funciona tanto no navegador quanto no nó. Consulte a documentação para todos os recursos.fonte
Você deseja dar uma olhada em setInterval () e setTimeout ().
Aqui está um artigo tutorial decente .
fonte
sim - veja
setInterval
esetTimeout
execute o código em determinados horários. setInterval seria o único a ser usado para executar o código periodicamente.Veja uma demonstração e responda aqui para uso
fonte
fonte
Como você deseja que a função seja executada periodicamente , use setInterval
fonte
A maneira nativa é de fato
setInterval()
/clearInterval()
, mas se você já estiver usando a biblioteca Prototype, poderá aproveitar o PeriodicalExecutor:Isso evita a sobreposição de chamadas. Em http://www.prototypejs.org/api/periodicalExecuter :
fonte