Sono stato in grado di verificare se transizioni o animazioni CSS stavano attivando ricalcoli sulla mia pagina. Ho usato jQuery per fare questo, ma è possibile utilizzare quello che vuoi:
$('*').css('transition', 'none');
$('*').css('animation', 'none');
Questo disabilita efficacemente le transizioni e le animazioni su ogni elemento della pagina. Li ho gestiti uno alla volta, e poi rieseguito la mia profilazione. Nel mio caso, le animazioni erano il colpevole.
.css('animation')
restituirà qualcosa come
"myCustomAnimation 15s linear 0s infinite normal none running"
o se non c'è animazione,
"none 0s ease 0s 1 normal none running"
Così, dopo l'aggiornamento (per riattivare le animazioni), il seguente frammento registra ogni elemento che ha un'animazione definito:
$('*').each(function(){
if($(this).css('animation').split(' ')[0] != 'none'){ //you could also check for infinite here if you want
console.log(this);
}
});
Disabilitando animat ioni su ciascuno di quelli individualmente, sono stato in grado di determinare quale stava causando i miei problemi.
Questa è stata una demo molto utile, ma ci sono anche voci "Ricalcola stile" che non mostrano una traccia dello stack e non sembrano essere associate a nessun codice. Quando ci sono molti elementi ottengo quella voce ogni volta che clicco, ma non sono stato in grado di rintracciare perché ha bisogno di ricalcolare. – redbmk
Sto ricevendo questo originario dal GC secondario. Quindi immagino buona fortuna a capirlo. –