Sobes.tech
Middle

Koja je razlika između oznaka <script>, <script async> i <script defer>?

sobes.tech АИ

Одговор од АИ

Стандардни <script> зауставља парсирање HTML-а, учитава скрипт и извршава га, а затим наставља са парсирањем.

<script async> учитава скрипт асинхроно, док је парсирање HTML-а у току. Скрипт се извршава одмах након учитавања. Редослед извршавања није гарантован.

<script defer> учитава скрипт асинхроно, док је парсирање HTML-а у току. Скрипт се извршава само после завршетка парсирања HTML-а, али пре догађаја DOMContentLoaded. Редослед извршавања скрипти са defer се одржава у складу са њиховим појављивањем у HTML-у.

Упоредна табела:

Атрибут Парсирање HTML-а током учитавања скрипта Извршавање скрипте Одржавање редоследа извршавања
Нема Паузира Одмах након учитавања Да
async Наставља Одмах након учитавања (може прекинути парсирање) Не
defer Наставља После завршетка парсирања HTML-а Да

Пример:

<!-- Обичан скрипт - блокира парсирање -->
<script src="script1.js"></script>

<!-- Асинхрона скрипт - не блокира парсирање, извршава се одмах након учитавања -->
<script src="script2.js" async></script>

<!-- Одложени скрипт - не блокира парсирање, извршава се након парсирања HTML-а -->
<script src="script3.js" defer></script>
<script src="script4.js" defer></script> <!-- Биће извршен након script3.js -->