Sobes.tech
Junior

Miért csatlakoznak általában a szkriptek a body címke végén?

sobes.tech MI

Válasz az MI-től

A weboldal renderelésének blokkolásának elkerülése és a DOM elemekhez való azonnali hozzáférés biztosítása érdekében.

Amikor szkripteket <head>-ben vagy a <body> elején helyezünk el async vagy defer attribútumok nélkül, a böngésző megszakítja az HTML elemzését és az oldal renderelését, amíg a szkript be nem töltődik és végre nem hajtódik. Ez lassítja az oldal látható teljesítményét.

A <body> végén történő csatlakoztatás garantálja, hogy a DOM-fa már teljesen kialakult a szkript végrehajtásának pillanatában, lehetővé téve a közvetlen interakciót az elemekkel anélkül, hogy eseménykezelőket, például DOMContentLoaded vagy load-t kellene használni csak az elemek eléréséhez.

Az async és defer attribútumok modern alternatívák, amelyek rugalmasabb lehetőségeket kínálnak a szkriptek betöltésére anélkül, hogy blokkolnák az HTML elemzését:

  • async: A szkript aszinkron módon töltődik be, és azonnal végrehajtódik a betöltés után, anélkül, hogy várna a DOM teljes betöltésére. Az aszinkron szkriptek végrehajtási sorrendje nem garantált.
  • defer: A szkript aszinkron módon töltődik be, és a teljes HTML elemzés után, de a DOMContentLoaded esemény előtt hajtódik végre. A defer-rel betöltött szkriptek a megjelenésük sorrendjében kerülnek végrehajtásra.