module & nomodule – загрузка JavaScript для современных браузеров и поддержка старых

Рассмотрим паттерн module/nomodule, который позволяет разделить загрузку скриптов для старых и новых браузеров.

Разделение скриптов JS таким образом позволяет автоматически загружать отдельный бандл в современных браузерах, а в IE11 и других устаревших браузерах – бандл для IE11.

Короткий и простой пример:

<script type="module" src="https://cdn.jsdelivr.net/gh/alpinejs/[email protected]/dist/alpine.min.js"></script>
<script nomodule src="https://cdn.jsdelivr.net/gh/alpinejs/[email protected]/dist/alpine-ie11.min.js" defer></script>

К сожалению, не всё так просто. Показанный выше подход на основе HTML инициирует перезагрузку скриптов в Edge и Safari.

Более детальные варианты решения задачи есть тут https://habr.com/ru/company/raiffeisenbank/blog/473994/

Фото аватара
Anatolii I

Веб разработчик, специализация на лучших мировых практиках: WordPress, WooCommerce, NextJS, Strapi, JAMStack ...

Основные типы проектов: CMS, eCommerce, SEO, LMS, ECM, BPM

Подробнее...

Статей: 112

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *