Heartbeat Ajax usando setInterval, impedindo várias chamadas ao mesmo tempo
Eu gostaria de fazer uma chamada AJAX usando jQuery como um "heartbeat" em segundo plano para que meu aplicativo da web possa verificar novos dados. Por exemplo, a cada 10 segundos.
Eu vi em outros posts que é possível usarsetInterval()
para chamar um método que faz a chamada a cada número X de milissegundos.
No entanto, o que acontece se a minha chamada AJAX demorar mais de 10 segundos? Ainda quero que conclua a última solicitação e não quero que outra chamada seja instigada quando já houver uma em andamento. Isso pode resultar na mesma informação sendo colocada na página duas vezes!
Qual é a maneira de implementar isso para o meu método esperar que a chamada AJAX original seja concluída, em vez de simplesmente "a cada 10 segundos", quando a original pode não estar completa?