Sobes.tech
Назад к вопросам
Middle
3

Расскажи про атрибуты defer и async у тега script. Чем они отличаются?

Компании, где спрашивали
SimbirsoftSimbirsoft

Ответ от нейросети

sobes.tech AI

Атрибуты defer и async у тега <script> управляют загрузкой и выполнением внешних скриптов, чтобы улучшить производительность загрузки страницы.

  • async — скрипт загружается асинхронно параллельно с парсингом HTML, и выполняется сразу после загрузки, не дожидаясь окончания парсинга. Это может привести к тому, что скрипты выполняются в произвольном порядке.

  • defer — скрипт тоже загружается асинхронно, но выполнение откладывается до тех пор, пока весь HTML не будет полностью распарсен. Скрипты с defer выполняются в порядке их появления в документе.

Если не использовать ни async, ни defer, скрипт блокирует парсинг HTML до своей загрузки и выполнения.

Пример:

<script src="script1.js" async></script>
<script src="script2.js" defer></script>

Здесь script1.js загрузится и выполнится как только загрузится, возможно раньше, чем страница полностью загрузится. script2.js загрузится параллельно, но выполнится после полной загрузки и парсинга HTML.