Eu estava testando a precisão do setTimeout
uso deste teste . Agora 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 em FF4 ou IE9, isso não ocorreu.
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 significaria que não podemos executar tarefas em segundo plano, como, por exemplo, verificar periodicamente em um servidor usando chamadas XHR e setInterval
(eu suspeito de ver o mesmo comportamento setInterval
, escreveremos um teste se houver tempo comigo).
Alguém já encontrou isso? Haveria uma solução alternativa para essa suspensão / desaceleração? Você chamaria isso de bug e devo arquivá-lo como tal?
transition
, portanto nem todos os divs fazem a transição ao mesmo tempo, mas na verdade 15ms um após o outro, criando algum efeito contínuo. Quando vou para outra guia e volto depois de um tempo, todos os divs são transferidos ao mesmo tempo e o setTimeOut
é completamente ignorado. Não é um grande problema para o meu projeto, mas é uma adição estranha e indesejada.