Udało mi się sprawdzić, czy przejścia CSS lub animacje wyzwalają ponowne obliczenia na mojej stronie. Kiedyś jQuery to zrobić, ale można użyć, co chcesz:
$('*').css('transition', 'none');
$('*').css('animation', 'none');
To skutecznie blokuje przejścia i animacje na każdym elemencie strony. Sprawdziłem je po jednym na raz, a potem ponownie przedstawiłem profilowanie. W moim przypadku winowajcą były animacje.
.css('animation')
powróci coś
"myCustomAnimation 15s linear 0s infinite normal none running"
lub jeśli nie ma animacji,
"none 0s ease 0s 1 normal none running"
Więc po odświeżeniu (aby ponownie włączyć animacje), następujący fragment rejestruje każdy element, który ma animację zdefiniowano:
$('*').each(function(){
if($(this).css('animation').split(' ')[0] != 'none'){ //you could also check for infinite here if you want
console.log(this);
}
});
Wyłączenie animatu jony każdego z osobna, udało mi się ustalić, który powodował moje problemy.
To było całkiem pomocne demo, ale są też wpisy "Przelicz styl", które nie pokazują śladu stosu i nie wydają się być dołączone do żadnego kodu. Kiedy pojawia się wiele elementów, otrzymuję ten wpis za każdym razem, gdy klikam, ale nie jestem w stanie prześledzić, dlaczego musi on ponownie przeliczyć. – redbmk
Otrzymuję to pochodzący z mniejszego GC. Sądzę, że powodzenia w ustaleniu tego. –