2011-12-21 11 views
6

Ho eseguito alcuni test su Chrome e requestAnimationFrame ha prodotto 61 fps mentre setTimeOut(callback, 0) ha prodotto 233 fps.
Se si desidera avere più di 61 fps (che non sono sicuro per cosa), ma non sarebbe meglio eseguire il rendering con setTimeOut e utilizzare requestAnimationFrame per rilevare quando la finestra ha perso lo stato attivo e quindi interrompere i timeout fino a l'attenzione ritorna?setTimeOut restituisce 233 fps mentre requestAnimationFrame restituisce 61

E una domanda a parte: c'è un altro modo per rilevare quando la finestra perde l'attenzione oltre a requestAnimationFrame che non chiama il callback?

risposta

12

trama di domanda di animazione è in sincronia con i monitor frequenza di aggiornamento (non v'è alcuna utilità per animare più fotogrammi di quanto in realtà si sta mostrando sullo schermo)

Qui è un riferimento dalla documentazione di Mozilla: https://developer.mozilla.org/en/DOM/Animations_using_MozBeforePaint

Controllo velocità frame

MozBeforePaint non attiverà più di un numero fisso di volte per secondo, ad esempio 50 o 60. Questo è intenzionale, perché i sistemi operativi moderni e l'hardware non consentono al browser di visualizzare più frame di . Limitare il frame rate evita sprechi di lavoro, quindi risparmiando l'utilizzo e la potenza della CPU e migliorando le prestazioni generali del sistema.

Problemi correlati