Мой веб-сайт имеет сценарий jQuery (от Теневой анимации плагин jQuery), который постоянно изменяет цвет тени поля различных Анимация не важна, но она действительно поднимает много процессорного времени на более медленных машинах. Действительно ли возможно узнать, будет ли сценарий работать 'слишком медленно'? Я могу затем отключить его, прежде чем это повлияет на производительность. Это - даже хорошая идея? В противном случае есть ли простой способ разбить анимационный jQuery?
Это может косвенно решить вашу проблему. Выберите несколько алгоритмов и тестов производительности с этого сайта http://dromaeo.com/ , которые кажутся похожими на ваш плагин jQuery. Не проводите комплексные тесты, как на сайте. Вместо этого выберите довольно маленькие и быстрые алгоритмы и запускайте их в течение незаметного периода времени.
Используйте крошечный заранее определенный промежуток времени, чтобы ограничить продолжительность выполнения этих тестов. Скажем, если этот интервал составляет 200 мс, и на быстрой машине с браузером A вы можете получить 100 итераций, в то время как на машине какого-то случайного пользователя он может выполнить только 5 итераций, тогда вы можете рассмотреть возможность отключения его для пользователя. машина. Настраивайте и настраивайте, пока не найдете оптимальные числа.
В качестве бонуса отправьте все результаты тестов обратно на свой сервер, чтобы вы лучше понимали, где находятся ваши пользователи в диапазоне скоростей. Если подавляющее большинство пользователей используют более медленные компьютеры и старые браузеры, возможно, имеет смысл полностью удалить эту вещь.
Вы можете сделать что-то вроде $(window).width()
для получения ширины браузера. Используя это, можно сделать предположение, что все, что < 1024px
в ширину, скорее всего, является нетбуком, смартфоном или старым компьютером.
Это будет не так точно, как тайминг цикла, но гораздо более эффективно.
Очевидно, что это правило является обобщением, и есть медленные компьютеры с > 1024px. Но в целом компьютер с разрешением 1024px + обычно способен обрабатывать достаточно много javascript (пока владелец не установит кучу программ, антивирусных сканеров и панелей инструментов браузера!)
Надеюсь, это будет полезно!
Возможно, вы могли бы сделать это, несколько раз обходя цикл, который выполняет интенсивную обработку при загрузке страницы, но это замедлит страницу и еще больше увеличит нагрузку на процессор, так что это не кажется отличным решением.
Компромиссным решением, которое я использовал в прошлом, было принятие решения на основе версии браузера, например, пользователи Internet Explorer 6 получали более простой контент, в то время как новые браузеры с лучшей производительностью JavaScript получали анимацию. На практическом уровне это работает довольно хорошо. На практике выбор браузера является большим фактором для производительности JavaScript, и вы можете получить 90% соответствие тому, что вы хотите, просто приняв это во внимание.