Почему reflow вызвано analytics.js:1520 [google-analytics]
Мне было интересно, если кто-нибудь знает, как избавиться от этого следующего оплавления, по-видимому, вызванного аналитикой, или где обсудить это на github? Спасибо
2 ответа
Спасибо за Ваш ответ. Я считаю, что это предупреждение было точным, и его необходимо устранить, как указано в https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing.
После отслеживания стека вызовов я понял, что один из наших сценариев добавляет класс в тело после первого рендеринга, и это, по-видимому, и стало причиной перекомпоновки. Я до сих пор не понимаю, почему аналитика - это сценарий, поднимающий это предупреждение на вкладке "Производительность". Я думаю, он может наблюдать за изменением размера тела.
С наилучшими пожеланиями
В этом документе утверждается, что перекомпоновка запускается для clientWidth и clientHeight, даже когда они читаются (а не только когда установлены). Однако автор также указывает, что
У Reflow есть только стоимость, если документ изменился и лишил законной силы стиль или расположение. Как правило, это потому, что DOM был изменен [...]
что скрипт аналитики не делает. Таким образом, кажется, что происходит перекомпоновка, но я сомневаюсь, что это приведет к значительному снижению производительности. В любом случае вы от этого не избавитесь.
В статье также есть ссылки на множество других постов, в которых обсуждаются проблемы принудительного перекомпоновки.