Zašto se skripte obično povezuju na kraju taga body?
sobes.tech АИ
Одговор од АИ
Da bi se izbeglo blokiranje renderovanja stranice i obezbedio pristup DOM elementima odmah nakon njihovog učitavanja.
Prilikom povezivanja skripti u <head> ili na početku <body> bez atributa async ili defer, pregledač zaustavlja parsiranje HTML-a i renderovanje stranice dok se skripta ne učita i izvrši. To usporava vidljivu performansu sajta.
Povezivanje na kraju <body> garantuje da je DOM drvo već potpuno formirano u trenutku izvršavanja skripte, omogućavajući direktnu interakciju sa elementima bez potrebe za korišćenjem handlera događaja poput DOMContentLoaded ili load samo za pristup elementima.
Atributi async i defer su savremene alternative koje nude fleksibilnije opcije za učitavanje skripti, ne blokirajući analizu HTML:
async: Skripta se učitava asinhrono i izvršava odmah nakon učitavanja, bez čekanja na potpuno učitavanje DOM-a. Redosled izvršavanja asinhronih skripti nije garantovan.defer: Skripta se učitava asinhrono i izvršava nakon potpune analize HTML-a, ali pre događajaDOMContentLoaded. Skripte sadeferse izvršavaju u redosledu njihovog pojavljivanja u dokumentu.