Junior
Prečo sa skripty zvyčajne pripájajú na konci tagu body?
sobes.tech AI
Odpoveď od AI
Aby sa zabránilo blokovaniu vykresľovania stránky a zabezpečilo prístup k prvkom DOM ihneď po ich načítaní.
Pri pripájaní skriptov v <head> alebo na začiatku <body> bez atribútov async alebo defer, prehliadač pozastaví analýzu HTML a vykresľovanie stránky, kým sa skript nenahrá a nevykoná. To spomaľuje viditeľný výkon stránky.
Pripojenie na konci <body> zabezpečuje, že strom DOM je už úplne vytvorený v čase vykonávania skriptu, čo umožňuje priame interakcie s prvkami bez nutnosti používať obslužníky udalostí ako DOMContentLoaded alebo load iba na prístup k prvkom.
Atribúty async a defer sú moderné alternatívy, ktoré ponúkajú flexibilnejšie možnosti načítania skriptov, neblokujúc analýzu HTML:
async: Skript sa načítava asynchrónne a vykonáva sa ihneď po načítaní, bez čakania na úplné načítanie DOM. Poradie vykonávania asynchrónnych skriptov nie je garantované.defer: Skript sa načítava asynchrónne a vykonáva sa po úplnom parsovaní HTML, ale pred udalosťouDOMContentLoaded. Skripty sdefersa vykonávajú v poradí ich výskytu v dokumente.