Можно ли обнаружить вычислительную мощность для использования в прогрессивном улучшении в веб-разработке?

Иногда мне нужно добавить анимационные эффекты, которые выходят за рамки CSS3 как эффекты, которые связаны с положением прокрутки и т. д.

Часто это работает просто отлично, но в последнее время я столкнулся с неловкой проблемой. Я пытаюсь анимировать эффект размытия, который возникает, когда пользователь прокручивает страницу вниз, используя -webkit-filter: blur(),

Это достаточно легко реализовать с помощью некоторого JavaScript, но я обнаружил, что анимация размытия действительно отягощает процессор пользователя. Анимация работала нормально на моей новой сверкающей быстрой mac-book, но не работала гладко на старых машинах (или даже в браузерах на моей машине, кроме Google Chrome).

Детали реализации не важны, но я обнаружил, что эта проблема напрашивается на вопрос:

Могу ли я прозрачно определить (возможно, примерно) вычислительную мощность клиентов и использовать эти знания для включения или выключения определенных функций в моем коде, чтобы обеспечить бесперебойную работу и анимацию?

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

1 ответ

Решение

Если вам известен верхний предел производительности (вы упоминаете, что он не работает в некоторых последних браузерах на вашем новом ноутбуке), то вы можете использовать информацию о пользовательском агенте, чтобы получить информацию о браузере и ОС, отключив эту функцию для версий, которые старше вашего верхнего предела. Это слишком осторожное приближение, вы всегда можете использовать свое суждение при установке пороговых значений.

Также см. Следующий связанный вопрос: Как я могу проверить вычислительную мощность компьютера пользователя с помощью Javascript?

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