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-ից հետո) | Գերաշխավորված |
Այսպիսով, սա մի աղյուսակ է, որը ամփոփում է տարբերությունները։