Как проверить поддержку es 2015, 2016?

166
20 октября 2018, 06:30

Хочу генерировать на сайте несколько вариантов js (es5, es2015, es2016), и отдавать клиенту нужный файл с js, в зависимости от того, какой стандарт поддерживает его браузер. Подскажите, пожалуйста, как лучше проверить что поддерживает браузер клиента?

Я сначала хотел прямо в браузере проверять, что он поддерживает, а потом соответственно подключать нужный файл js. Но меня, беспокоит, не приведёт ли это к тому, что js начнёт выполнятся позже? Просто изначально браузер сразу начал бы загружать файл с js, а так он сначала должен дойти до кода с проверкой, выполнить его и только после этого добавить тег с подключением скрипта и браузер начнет грузить нужный js.

Я подумал, может такую проверку можно делать на сервере, по заголовку который приходит от клиента? Т.е. например смотреть версию юзер агента, и по ней понимать поддерживает этот браузер es2015, или нет, может есть какая нибудь php библиотека для этого?

Answer 1

В вашем случае просто делайте две сборки: под IE и под все остальные браузеры. Есть пакет babel-env, там можно указывать список браузеров, под которые компилится бандл. Если вы указываете новые браузеры, то babel не будет компилить все в es5, а только те вещи, которые в новых браузерах еще не поддерживаются.

Поэтому, отдельно собираете для новых браузеров, отдельно для IE и отдаете с сервера по условию

Как вариант еще, использовать полифилы, подгружая их только для IE, для этого условные комментарии подойдут:

// если IE9
<!--[if lt IE 9]>
    <script src='ссылка на полифил' >
<![endif]-->
READ ALSO
Непонятно как работает сетка на сайте

Непонятно как работает сетка на сайте

Пытаюсь на сайт добавить "бесконечный скролинг": необходимо чтобы при прокрутке страницы вниз загружались новые статьи (Ajax)Всё настроил,...

170
PHP 7.2.8 build с openssl на Debian

PHP 7.2.8 build с openssl на Debian

Не могу собрать php 72

186
Сравнение в PHP switch

Сравнение в PHP switch

работаю с API вконтактеСделал небольшой скрипт, где идет сравнение по Switch , сообщения пользователя, с моими данными, вот пример:

188
Как объединить вложенности массива

Как объединить вложенности массива

Как я могу объединить вложенности массива? Имеется следующий массив:

181