Sobes.tech
Middle

Фарқи байни тегҳои <script>, <script async> ва <script defer> чист?

sobes.tech AI

Ҷавоб аз AI

  • <script>: Анализи HTML баъс мешавад, скрипт бор карда мешавад ва иҷро мешавад, сипас анализи HTML идома меёбад. Блок мекунад рендерингро.
  • <script async>: Скрипт асинхрон бор карда мешавад, ҳамзамон бо анализи HTML. Ҳангоми бор шудан, анализи HTML боздошта мешавад барои иҷрои скрипт, пас идома меёбад. Тартиби иҷрои скриптҳои асинхрон кафолат дода намешавад.
  • <script defer>: Скрипт асинхрон бор карда мешавад, ҳамзамон бо анализи HTML. Иҷро ба анҷоми пурраи анализи HTML ва сохтани DOM интизор мешавад. Тартиби иҷрои скриптҳои дердшуда дар асоси тартиби онҳо дар ҳуҷҷат нигоҳ дошта мешавад.

Ин аст ҷадвале, ки фарқиятҳоро ҷамъбаст мекунад:

Хусусият Боркунӣ Иҷро Блок кардани таҳлили HTML Тартиби скриптҳо
намоён нест Синхронӣ Баъд аз боркунӣ фавран Бале Гарантӣ дода мешавад
async Асинхронӣ Баъд аз боркунӣ фавран (агар HTML ҳанӯз таҳлил мешавад) Бале (дар вақти иҷро) Нагарантӣ
defer Асинхронӣ Пас аз пурра боркунии HTML ва сохтани DOM Не (ҳангоми иҷро, аммо пас аз HTML) Гарантӣ дода мешавад