Ciò si verifica quando i Blink (motore di rendering di Chrome) decide di ritardare l'esecuzione di un timer (come una funzione passata a requestAnimationFrame
, setTimeout
o setInterval
) perché quelle funzioni sono generalmente prendendo> 50ms per l'esecuzione e c'è l'input tattile dell'utente. È fatto per dare la priorità alla gestione dell'input dell'utente (come pergamene e tocchi) sopra quello che sta facendo il sito.
Se si è verificato questo messaggio, è probabile che gli utenti abbiano un comportamento simile. Ecco come riprodurre questo scenario:
- javascript di lunga durata che viene attivato tramite timer
- essere sul cellulare (o emulando con modalità dispositivo DevTools)
- Avere l'input tocco, lo scorrimento con le dita in basso sullo schermo è il più affidabile. Toccando o sfogliando la pagina potrebbe anche attivarlo, ma è meno probabile e più difficile da riprodurre.
- La limitazione della CPU sperimentale di devtools renderà il JS più lungo e offrirà maggiori possibilità di vederlo.
Il metodo per come risolvere questo è direttamente dal referenced issue nel messaggio console verso il basso in un commento 40:
- Registra una linea temporale sulla pagina che sta provocando il messaggio console su differimento.
- Selezionare l'intera timeline e aprire il riquadro "Registro eventi" nella parte inferiore della finestra.
- Inserire "Timer attivato" nel campo di testo del filtro. (Vedere l'immagine in basso)
- Cercare i timer nell'elenco il cui "Tempo totale" supera i 50 millisecondi. Questi sono quelli problematici. (Si noti che i timer che superano i 10 millisecondi possono anche attivare questo messaggio in alcuni casi in cui il browser sta elaborando un gesto dell'utente.)
Si desidera eseguire queste funzioni più rapidamente o meno frequentemente.
Hai letto http://crbug.com/574343? – Alex