Junior
Proč jsou skripty obvykle připojeny na konci tagu body?
sobes.tech AI
Odpověď od AI
Aby se zabránilo blokování vykreslování stránky a zajistil přístup k prvkům DOM ihned po jejich načtení.
Při připojování skriptů v <head> nebo na začátku <body> bez atributů async nebo defer prohlížeč pozastaví parsování HTML a vykreslování stránky, dokud se skript nenačte a nevykoná. To zpomaluje viditelný výkon webu.
Připojení na konci <body> zaručuje, že strom DOM je již plně vytvořen v okamžiku spuštění skriptu, což umožňuje přímou interakci s prvky bez nutnosti používat obslužné funkce událostí jako DOMContentLoaded nebo load pouze pro přístup k prvkům.
Atributy async a defer jsou moderní alternativy, které nabízejí flexibilnější možnosti načítání skriptů, aniž by blokovaly analýzu HTML:
async: Skript se načítá asynchronně a je spuštěn ihned po načtení, bez čekání na úplné načtení DOM. Pořadí spuštění asynchronních skriptů není garantováno.defer: Skript se načítá asynchronně a je spuštěn po úplném parsování HTML, ale před událostíDOMContentLoaded. Skripty sdeferjsou spuštěny v pořadí, v jakém se objevují v dokumentu.