Chrome: intervalos / intervalos suspensos nas guias em segundo plano?
Eu estava testando a precisão desetTimeout
usandoesse test. Agora eu notei que (como esperado)setTimeout
não é muito preciso, mas para a maioria dos aparelhos não é dramaticamente impreciso. Agora, se eu executar o teste no Chrome e deixá-lo em uma guia em segundo plano (alternando para outra guia e navegando lá), retornando ao teste e inspecionando os resultados (se o teste terminar), eles serão alterados drasticamente. Parece que os tempos limite estiveram muito mais lentos. Testado no FF4 ou IE9, isso não ocorreu.
Por isso, parece que o Chrome suspende ou pelo menos diminui a execução do javascript em uma guia que não tem foco. Não foi possível encontrar muito na rede sobre o assunto. Isso significa que não podemos executar tarefas em segundo plano, como, por exemplo, verificar periodicamente em um servidor usando chamadas XHR esetInterval
(Suspeito de ver o mesmo comportamento parasetInterval
, escreverá um teste se o tempo estiver comigo
Alguém encontrou isso? Haveria uma solução alternativa para essa suspensão / desaceleração? Você chamaria isso de bug e devo arquivá-lo como tal?