Подтвердить что ты не робот

Отключить функцию JavaScript на основе производительности пользовательского компьютера

На моем веб-сайте есть jQuery script (из плагин jQuery для анимации теневой анимации), который постоянно меняет цвет тень окна различных <div> на домашней странице.

Анимация не нужна, но на медленных машинах она занимает много времени.

Можно ли узнать, будет ли script работать слишком медленно? Затем я могу отключить его, прежде чем он повлияет на производительность.

Это даже хорошая идея? Если нет, есть ли простой способ разбить анимацию jQuery?

4b9b3361

Ответ 1

Это может косвенно решить вашу проблему. Выберите несколько алгоритмов и тестов производительности с этого сайта http://dromaeo.com/, которые похожи на ваш плагин jQuery. Не выполняйте всесторонние тесты, как на сайте. Вместо этого выберите довольно маленькие и быстрые алгоритмы и запустите их в течение незаметного периода времени.

Используйте минимальный предопределенный временной интервал, чтобы ограничить продолжительность выполнения этих тестов. Скажем, если этот интервал составляет 200 мс, а на быстрой машине с браузером А вы можете получить 100 итераций, а на какой-то случайной машине пользователя он сможет выполнить только 5 итераций, тогда вы можете захотеть отключить его у пользователя машина. Подстройте и настройте, пока не найдете оптимальные номера.

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

Ответ 2

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

Компромисс, который я использовал в прошлом, заключался в том, чтобы принять решение на основе версии браузера, например, пользователи Internet Explorer 6 получают более простой контент, тогда как новые браузеры с лучшей производительностью JavaScript получают анимацию. Казалось, это очень хорошо работает на практическом уровне. На практике выбор браузера является большим фактором производительности JavaScript, и вы можете получить 90% соответствия тому, что вы хотите, просто просто учитывая это.

Ответ 3

Вы можете сделать что-то вроде $(window).width(), чтобы получить ширину браузера. Используя это, вы можете сделать предположение, что любой < 1024px широкий, вероятно, будет либо нетбуком, смартфоном, либо старым компьютером.

Это было бы не так точно, как выбор времени цикла, но гораздо эффективнее.

Очевидно, что это правило является обобщением и будут медленные компьютеры s > 1024px. Но в целом компьютер с разрешением 1024px +, как правило, может обрабатывать справедливый бит javascript (пока владелец не загрузит множество программ, вирусов и панелей инструментов браузера!)

надеюсь, что это полезно!