Я не использовал Browserhawk (на самом деле, я никогда не слышал об этом до сих пор), поэтому, пожалуйста, не принимайте мое мнение как безошибочное.
Тем не менее, я знаю о browsecap.ini, и, потратив несколько минут на чтение веб-сайта Browserhawk, я вполне уверен, что это также инструмент обнаружения браузера на стороне сервера.
Если это так, то ответ «Да». В соответствии с современной практикой рекомендуется избегать использования обнаружения на стороне сервера и использовать вместо этого функцию обнаружения на стороне клиента. И это именно то, что делает Modernizr.
Функция обнаружения позволяет вам выполнять более тонкую настройку вашего сайта в зависимости от того, на что способен браузер пользователя, а не просто блокировать пользователей, которые имеют (или не имеют) определенный браузер. Он также позволяет при необходимости реализовывать специальные резервные решения для конкретных функций.
Обнаружение браузера пользователя со стороны сервера является проблемой из-за быстрых темпов изменений на рынке браузеров; вам необходимо постоянно обновлять скрипт обнаружения браузера, чтобы справляться с новыми версиями.
Кроме того, пользователи немного более необычных браузеров или оболочек браузера могут не распознаваться сценарием обнаружения браузера должным образом, поэтому у них могут возникнуть проблемы с сайтами, которые его используют, даже если их браузер должен отображать этот сайт. Кроме того, некоторые пользователи могут не предоставлять строку агента пользователя, необходимую для правильного определения их браузера; он блокируется некоторыми прокси-серверами, брандмауэрами и т. д., и некоторые браузеры также позволяют изменять его, поэтому его можно легко подделать, если пользователь захочет.
Но, сделав все возможное, чтобы способствовать обнаружению функций по сравнению с обнаружением в браузере, мне нужно указать на одно исключение из всего этого, и это IE.
В старых версиях IE есть много ошибок. Это отличается просто отсутствием функций, потому что вы не можете так легко активно проверять наличие ошибок. Если у вас есть определенные проблемы с ошибками IE, то вполне законно сделать обнаружение браузера, чтобы избежать их. (функция обнаружения остается в силе, если вы беспокоитесь только о том, что поддерживает браузер, а не об ошибках)
Но даже в этом случае такой инструмент, как browsercap.ini или Browserhawk, не нужен. IE поддерживает Условные комментарии , что позволяет добавлять определенный код для IE, не выходя из своего пути, чтобы обнаружить его.