Почему reflow вызвано analytics.js:1520 [google-analytics]

Мне было интересно, если кто-нибудь знает, как избавиться от этого следующего оплавления, по-видимому, вызванного аналитикой, или где обсудить это на github? Спасибо

Перекомпоновка на вкладке Chrome Performance

Аналитика кода Линия запускает оплавление

2 ответа

Спасибо за Ваш ответ. Я считаю, что это предупреждение было точным, и его необходимо устранить, как указано в https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing.

После отслеживания стека вызовов я понял, что один из наших сценариев добавляет класс в тело после первого рендеринга, и это, по-видимому, и стало причиной перекомпоновки. Я до сих пор не понимаю, почему аналитика - это сценарий, поднимающий это предупреждение на вкладке "Производительность". Я думаю, он может наблюдать за изменением размера тела.

С наилучшими пожеланиями

В этом документе утверждается, что перекомпоновка запускается для clientWidth и clientHeight, даже когда они читаются (а не только когда установлены). Однако автор также указывает, что

У Reflow есть только стоимость, если документ изменился и лишил законной силы стиль или расположение. Как правило, это потому, что DOM был изменен [...]

что скрипт аналитики не делает. Таким образом, кажется, что происходит перекомпоновка, но я сомневаюсь, что это приведет к значительному снижению производительности. В любом случае вы от этого не избавитесь.

В статье также есть ссылки на множество других постов, в которых обсуждаются проблемы принудительного перекомпоновки.

Другие вопросы по тегам