«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Освоение веб-анимации: CSS против неоптимизированной и оптимизированной производительности JavaScript

Освоение веб-анимации: CSS против неоптимизированной и оптимизированной производительности JavaScript

Опубликовано 30 августа 2024 г.
Просматривать:524

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

Введение в веб-анимацию

Анимация — ключевая часть современного веб-дизайна. Их можно реализовать различными методами, чаще всего с помощью чистого CSS или JavaScript. Однако не все методы работают одинаково хорошо. Чтобы продемонстрировать это, я решил протестировать три разных подхода:

  • Анимации, созданные с помощью CSS.
  • Неоптимизированная анимация с использованием JavaScript.
  • Оптимизированная анимация с использованием JavaScript с помощью requestAnimationFrame.

Настройка проекта

Проект доступен на GitHub. Вы можете легко скачать и опробовать его.

клон git https://github.com/TomasDevs/animation- Performance-test.git
cd анимация-тест производительности

После загрузки проверьте папки css-animation, js-animation-optimized и js-animation-unoptimized.

Попробуйте проект на GitHub

Измерение производительности

Для измерения производительности я использовал панель Performance Chrome DevTools. Каждая анимация длилась 10 секунд.

Результаты производительности и анализ

CSS-анимация

Mastering Web Animations: CSS vs Unoptimized and Optimized JavaScript PerformanceИсточник: Создано TomasDevs (2024)

  • Общее время блокировки: 390 мс

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


Оптимизированная анимация JavaScript

Mastering Web Animations: CSS vs Unoptimized and Optimized JavaScript PerformanceИсточник: Создано TomasDevs (2024)

  • Общее время блокировки: 400 мс

Примечания:
Оптимизированная версия JS использует requestAnimationFrame и функцию плавной синусоидальной волны для управления анимацией. Хотя для его написания требуется больше времени, чем для CSS-анимации, он по-прежнему работает достаточно эффективно и сокращает время рендеринга и рисования.


Неоптимизированная анимация JavaScript

Mastering Web Animations: CSS vs Unoptimized and Optimized JavaScript PerformanceИсточник: Создано TomasDevs (2024)

  • Общее время блокировки: 440 мс

Примечания:
Неоптимизированная версия JS использует простой цикл без учета прогресса времени. Это приводит к значительному увеличению времени написания сценариев, рендеринга и рисования из-за неэффективных вычислений для каждого кадра анимации.


Заключение

  • CSS-анимация в целом наиболее эффективна для простых анимаций. Они получают выгоду от аппаратного ускорения браузера и снижают нагрузку на основной поток.
  • Оптимизированная JavaScript анимация занимает второе место. Если вам нужен более динамичный контроль над анимацией, оптимизация с помощью requestAnimationFrame необходима для обеспечения плавной работы.
  • Неоптимизированные анимации JavaScript работают хуже всего, так как создают ненужную нагрузку на механизм рендеринга браузера из-за неэффективных вычислений.

Присоединяйтесь к обсуждению

Каков ваш опыт оптимизации веб-анимации? Есть ли у вас какие-либо дополнительные советы или рекомендации по повышению производительности? Дайте мне знать в комментариях ниже!

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/tomasdevs/mastering-web-animations-css-vs-unoptimized-and-optimized-javascript- Performance-4knn?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с Study_golang@163 .com, чтобы удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3