Sobes.tech
Junior

Kāpēc parasti skripti tiek pievienoti pie body taga beigām?

sobes.tech AI

Atbilde no AI

Lai novērstu lapas attēlošanas bloķēšanu un nodrošinātu tiešu piekļuvi DOM elementiem uzreiz pēc to ielādes.

Pievienojot skriptus <head> vai <body> sākumā bez async vai defer atribūtiem, pārlūkprogramma pārtrauc HTML analīzi un lapas attēlošanu līdz brīdim, kad skripts tiek ielādēts un izpildīts. Tas palēnina redzamo vietnes veiktspēju.

Pievienojums <body> beigās nodrošina, ka DOM koks jau ir pilnībā izveidots, kad tiek izpildīts skripts, ļaujot tieši mijiedarboties ar elementiem bez nepieciešamības izmantot notikumu apstrādātājus kā DOMContentLoaded vai load tikai piekļuvei elementiem.

async un defer atribūti ir mūsdienu alternatīvas, kas piedāvā elastīgākas iespējas skriptu ielādei, neapstādinot HTML analīzi:

  • async: Skripts tiek ielādēts asinhroni un izpildīts nekavējoties pēc ielādes, nesagaidot pilnu DOM ielādi. Asinhrono skriptu izpildes secība nav garantēta.
  • defer: Skripts tiek ielādēts asinhroni un izpildīts pēc pilnas HTML analīzes, bet pirms DOMContentLoaded notikuma. Skripti ar defer tiek izpildīti to parādīšanās secībā dokumentā.