Uma chamada de função 'setTimeout' recursiva acabará com o JS Engine?
Digamos que eu tenha alguns dados que eu preciso obter do servidor a cada 10 segundos. Eu teria uma função que obtém os dados via AJAX e, em seguida, chame setTimeout para chamar esta função novamente:
function GetData(){
$.ajax({
url: "data.json",
dataType: "json",
success: function(data){
// do somthing with the data
setTimeout(GetData, 10000);
},
error: function(){
setTimeout(GetData, 10000);
}
});
}
e alguém deixar a página da Web aberta o dia inteiro, poderá receber milhares de chamadas de função recursiva
Não quero usar setInterval porque isso não leva em consideração o atraso da rede. Se a rede estiver ocupada e levar 15 segundos para processar a solicitação, não quero perguntar novamente antes de obter o tempo limite do AJAX.
Qual é a melhor maneira de lidar com uma função que precisa ser chamada periodicamente?