Обнаружение функций (веб-разработка)

редактировать

Обнаружение функций (также тестирование функций ) - это метод, используемый в веб-разработке для обработки различий между средами выполнения (обычно веб-браузеры или пользовательские агенты ) путем программного тестирования на предмет того, что среда может или не может предлагать определенные функции. Затем эта информация используется для того, чтобы приложение каким-либо образом адаптировалось к среде: для использования определенных API или адаптации для лучшего взаимодействия с пользователем.

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

Методы

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

Поскольку JavaScript является наиболее распространенным сценарием. language в веб-браузерах многие методы обнаружения функций используют JavaScript для проверки DOM и локальной среды JavaScript.

Самый простой способ - проверить наличие соответствующего объекта или собственности. Например, API геолокации (используемый для доступа к информации устройства о его географическом местоположении, возможно, полученной от GPS-навигатора ) предоставляет свойство геолокациив навигатореобъект в DOM; наличие которого подразумевает, что API геолокации поддерживается:

if ('geolocation' в навигаторе) {// Geolocation API поддерживается}

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

Необнаруживаемые

Некоторые функции обозревателя считаются необнаруживаемыми, потому что не известно никаких подсказок, дающих достаточную уверенность в том, что функция поддерживается. Часто это происходит из-за ограниченной информации, доступной среде JavaScript в браузере; как правило, функции должны каким-либо образом отображаться через DOM, чтобы их можно было обнаружить с помощью JavaScript.

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

Проект Modernizr поддерживает запись известных необнаруживаемых объектов на своей вики.

См. Также
Последняя правка сделана 2021-05-20 12:15:19
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте