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-ից հետո) Գերաշխավորված

Այսպիսով, սա մի աղյուսակ է, որը ամփոփում է տարբերությունները։