Можно ли обнаружить вычислительную мощность для использования в прогрессивном улучшении в веб-разработке?
Иногда мне нужно добавить анимационные эффекты, которые выходят за рамки CSS3
как эффекты, которые связаны с положением прокрутки и т. д.
Часто это работает просто отлично, но в последнее время я столкнулся с неловкой проблемой. Я пытаюсь анимировать эффект размытия, который возникает, когда пользователь прокручивает страницу вниз, используя -webkit-filter: blur()
,
Это достаточно легко реализовать с помощью некоторого JavaScript, но я обнаружил, что анимация размытия действительно отягощает процессор пользователя. Анимация работала нормально на моей новой сверкающей быстрой mac-book, но не работала гладко на старых машинах (или даже в браузерах на моей машине, кроме Google Chrome).
Детали реализации не важны, но я обнаружил, что эта проблема напрашивается на вопрос:
Могу ли я прозрачно определить (возможно, примерно) вычислительную мощность клиентов и использовать эти знания для включения или выключения определенных функций в моем коде, чтобы обеспечить бесперебойную работу и анимацию?
Я знаю, что есть библиотеки анимации JavaScript, которые делают действительно великолепные вещи без большой вычислительной мощности, но это не то, что мне нужно. Я мог бы подумать о других случаях использования, которые не связаны с анимацией.
1 ответ
Если вам известен верхний предел производительности (вы упоминаете, что он не работает в некоторых последних браузерах на вашем новом ноутбуке), то вы можете использовать информацию о пользовательском агенте, чтобы получить информацию о браузере и ОС, отключив эту функцию для версий, которые старше вашего верхнего предела. Это слишком осторожное приближение, вы всегда можете использовать свое суждение при установке пороговых значений.
Также см. Следующий связанный вопрос: Как я могу проверить вычислительную мощность компьютера пользователя с помощью Javascript?