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 aDOMContentLoadedesemény előtt hajtódik végre. Adefer-rel betöltött szkriptek a megjelenésük sorrendjében kerülnek végrehajtásra.