O seu document.hidden?

Quando você muda de guia, os vídeos (por exemplo) não param, então desacelere o seu navegador.

solução: pausa automaticamente se o elemento não estiver visível para o usuário.

oculto: não visível
visível: exibir
pré-renderizar: baixar o elemento fora da tela
descarregado: aguardar a memória

para fazer isso, você deve adicionar um ouvinte de evento.
o documento [oculto] é uma configuração mínima, use o -prefixHidden para o navegador de destino.

// type, listener, useCapture
document
.addEventListener('visibilitychange', hidden, false);

function hidden(){

if(document[hidden]) {
//your action ... (pause your animation or other)
} else {
//your action ... (play ...)
}

}