JavaScript определяет, включено ли аппаратное ускорение


Можно ли определить, есть ли в браузере поддержка аппаратного ускорения рендеринга страниц, а также можно ли увидеть, включена ли она? Я знаю, что Firefox 4, IE9 и Chrome поддерживают его, но он может быть включен или не включен из-за версии браузера, операционной системы и самого компьютерного оборудования.

Возможно ли это, используя какую-то форму обнюхивания DOM?

2 2

2 ответа:

Как и все другие возможности браузера, вероятно, лучшее, что вы можете сделать, - это разработать какой-то тест функций и фактически измерить производительность того, что для вас важно.

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

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

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

Недавно я обнаружил удобный переключатель командной строки для Chrome (я использую V.16.0.912), который приводит к окрашиванию красных границ вокруг HTML (CSS3) элементов, которые на самом деле аппаратно ускоряются. Вы можете прочитать более подробную информацию в блоге , который я опубликовал по этой теме.