Função de exemplo usada para a Abordagem 1 e Abordagem 2 abaixo:
// Outputs "Hi" in the console when called
function sayHi() {
console.log("Hi");
}
Abordagem 1: Método ruim de fazer isso
Essa abordagem é considerada uma prática ruim, pois a função sayHi () será chamada a cada 5 segundos, independentemente de ter ou não concluído a execução das vezes anteriores em que foi chamada. Isso pode se tornar particularmente problemático quando você está lidando com solicitações AJAX, pois é necessário buscar ou enviar dados pela rede e os tempos de resposta são variáveis e desconhecidos.
// Will call sayHi() function every 5 seconds
setInterval(sayHi, 5000);
Abordagem 2: método preferido de fazer isso
Esta é a abordagem preferida, pois ela aguardará a função sayHi () terminar de ser executada antes de ser chamada novamente. Neste caso, você está esperando 5 segundos após a execução, não executando a cada 5 segundos.
// Self-executing function that uses setTimeout instead of setInterval
! function betterApproach() {
setTimeout(sayHi, 5000);
}();
// The self-executing function wrapper can also be written like this:
(function betterApproach() {
setTimeout(sayHi, 5000);
})();