Хочу генерировать на сайте несколько вариантов js (es5, es2015, es2016), и отдавать клиенту нужный файл с js, в зависимости от того, какой стандарт поддерживает его браузер. Подскажите, пожалуйста, как лучше проверить что поддерживает браузер клиента?
Я сначала хотел прямо в браузере проверять, что он поддерживает, а потом соответственно подключать нужный файл js. Но меня, беспокоит, не приведёт ли это к тому, что js начнёт выполнятся позже? Просто изначально браузер сразу начал бы загружать файл с js, а так он сначала должен дойти до кода с проверкой, выполнить его и только после этого добавить тег с подключением скрипта и браузер начнет грузить нужный js.
Я подумал, может такую проверку можно делать на сервере, по заголовку который приходит от клиента? Т.е. например смотреть версию юзер агента, и по ней понимать поддерживает этот браузер es2015, или нет, может есть какая нибудь php библиотека для этого?
В вашем случае просто делайте две сборки: под IE и под все остальные браузеры. Есть пакет babel-env, там можно указывать список браузеров, под которые компилится бандл. Если вы указываете новые браузеры, то babel не будет компилить все в es5, а только те вещи, которые в новых браузерах еще не поддерживаются.
Поэтому, отдельно собираете для новых браузеров, отдельно для IE и отдаете с сервера по условию
Как вариант еще, использовать полифилы, подгружая их только для IE, для этого условные комментарии подойдут:
// если IE9
<!--[if lt IE 9]>
<script src='ссылка на полифил' >
<![endif]-->
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости