(Вопрос не относится к трио .js, но я буду использовать его в качестве примера)
Я использую three.js для разработки интерфейса веб-приложения в последнее время и написал несколько замечательных отступлений между WebGL и Canvas renderer (для настольных браузеров).
Но теперь проблема заключается в том, как правильно определить возможности устройства, есть две проблемы:
- функции браузера (статические функции, такие как webgl/canvas): это в значительной степени разрешено в веб-сообществе с помощью простого обнаружения функции.
- возможность устройства: это сложная часть, без прямого доступа к информации об аппаратном обеспечении устройства, нам нужны некоторые способы сказать, следует ли нам отказаться от менее требовательного к оборудованию кода.
Заметный пример: поддержка мобильных приложений Opera Mobile Mobile/Opera поддерживает WebGL, но они недостаточно или ограничены аппаратным обеспечением устройства.
Несколько обходных решений, которые я придумал до сих пор:
- Использовать общую функцию в качестве индикатора производительности - сенсорное устройство, например, имеет менее мощное оборудование в целом. Кон: это не будущее.
- Черный список известных багги-браузеров/устройств. Нравственность UA будет неизбежной, и ее может быть сложно поддерживать.
- Тест производительности - поэтому вопрос, помимо запуска кода и измерения частоты кадров, есть лучшие варианты?
Или, может быть, это не так сложно, есть ли другие предложения?