Обнаружение функций (веб-разработка)
Эта статья нуждается в дополнительных цитатах для проверки . ( март 2014 г. ) |
Обнаружение функций (также тестирование функций ) — это метод, используемый в веб-разработке для обработки различий между средами выполнения (обычно веб-браузерами или пользовательскими агентами ) путем программного тестирования на наличие признаков того, что среда может предлагать или не предлагать определенные функции. Эта информация затем используется для того, чтобы приложение каким-либо образом адаптировалось к среде: использовать определенные API или адаптироваться для лучшего взаимодействия с пользователем. [1]
Его сторонники утверждают, что он более надежен и перспективен, чем другие методы, такие как анализ пользовательских агентов и хаки CSS для конкретных браузеров. [1]
Техники
[ редактировать ]Тестирование функций может принимать разные формы. По сути, это любой фрагмент кода, который дает некоторый уровень уверенности в том, что требуемая функция действительно поддерживается. Однако, в отличие от других методов, обнаружение признаков обычно фокусируется на выполнении действий, которые непосредственно связаны с обнаруживаемым признаком, а не на эвристике . [2]
Поскольку JavaScript является наиболее распространенным языком сценариев в веб-браузерах. [ нужна ссылка ] Многие методы обнаружения функций используют JavaScript для проверки DOM и локальной среды JavaScript.
Самый простой метод — проверить наличие соответствующего объекта или свойства. Например, API геолокации (используемый для доступа к сведениям устройства о его географическом местоположении, возможно, полученным от устройства GPS-навигации ) предоставляет geolocation
недвижимость на navigator
объект в DOM; наличие которого подразумевает поддержку API геолокации:
if ('geolocation' in navigator) { // Geolocation API is supported }
Для более высокого уровня уверенности некоторые тесты функций будут пытаться вызвать функцию, а затем искать признаки того, что она вела себя правильно. Например, тест на поддержку файлов cookie может попытаться установить значение в качестве файла cookie, а затем убедиться, что его можно прочитать обратно.
Необнаружимые
[ редактировать ]Некоторые функции браузера считаются необнаружимыми , поскольку неизвестны признаки, которые могли бы дать достаточную уверенность в том, что функция поддерживается. Зачастую это связано с ограниченностью информации, доступной среде JavaScript в браузере; как правило, функции должны каким-то образом отображаться через DOM, чтобы их можно было обнаружить с помощью JavaScript.
При обнаружении необнаружимых объектов обычно прибегают к анализу пользовательского агента в качестве альтернативного механизма или используют защитное кодирование , чтобы минимизировать воздействие, если функция оказывается не поддерживаемой.
Проект Modernizr ведет учет известных необнаружимых объектов на своей вики .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б Мейерт, Йенс (14 июля 2021 г.). Глоссарий веб-разработки . Фронтенд-догма.
- ^ «Реализация обнаружения функций» . веб-документы mdn . Проверено 23 августа 2022 г.