Sobes.tech
Junior

Чаро одатан скриптҳо дар охири теги body пайваст мешаванд?

sobes.tech AI

Ҷавоб аз AI

Барои пешгирӣ аз бастани раванди расмии саҳифа ва таъмин намудани дастрасӣ ба унсурҳои DOM фавран пас аз боркунии онҳо.

Ҳангоми пайваст кардани скриптҳо дар <head> ё дар оғози <body> бе хосиятҳои async ё defer, браузер таҳлили HTML ва расмии саҳифаро бозмедорад, то он даме, ки скрипт боркашӣ ва иҷро шавад. Ин ба суръати намоиши сайт таъсир мерасонад.

Пайваст кардан дар охири <body> кафолат медиҳад, ки дарахти DOM аллакай пурра шакл гирифтааст дар вақти иҷрои скрипт, ки имкон медиҳад бо унсурҳо мустақиман муошират кардан бе ниёз ба истифодаи ҳодисаҳои DOMContentLoaded ё load танҳо барои дастрасӣ ба унсурҳо.

Атрибутҳои async ва defer алтернативҳои муосир мебошанд, ки имкониятҳои бештарро барои боркунии скриптҳо пешниҳод мекунанд, бе бастани таҳлили HTML:

  • async: Скрипт асинхрон бор карда мешавад ва фавран пас аз боркунӣ иҷро мешавад, бидуни интизорӣ барои пурра бор кардани DOM. Тартиби иҷрои скриптҳои асинхрон кафолат дода намешавад.
  • defer: Скрипт асинхрон бор карда мешавад ва пас аз таҳлили пурраи HTML иҷро мешавад, аммо пеш аз ҳодисаи DOMContentLoaded. Скриптҳо бо defer дар тартиби пайдоиши онҳо дар ҳуҷҷат иҷро мешаванд.