Jump to content

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

Обнаружение функций (также тестирование функций ) — это метод, используемый в веб-разработке для обработки различий между средами выполнения (обычно веб-браузерами или пользовательскими агентами ) путем программного тестирования на наличие признаков того, что среда может предлагать или не предлагать определенные функции. Эта информация затем используется для того, чтобы приложение каким-либо образом адаптировалось к среде: использовать определенные 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 ведет учет известных необнаружимых объектов на своей вики .

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б Мейерт, Йенс (14 июля 2021 г.). Глоссарий веб-разработки . Фронтенд-догма.
  2. ^ «Реализация обнаружения функций» . веб-документы mdn . Проверено 23 августа 2022 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: bad6d9eb418d74e9e2061c91c6efae90__1695827460
URL1:https://arc.ask3.ru/arc/aa/ba/90/bad6d9eb418d74e9e2061c91c6efae90.html
Заголовок, (Title) документа по адресу, URL1:
Feature detection (web development) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)