Sobes.tech
Junior

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đaja DOMContentLoaded. Skripte sa defer se izvršavaju u redosledu njihovog pojavljivanja u dokumentu.