Middle
Kuo skiriasi <script>, <script async> ir <script defer> žymės?
sobes.tech AI
Atsakymas iš AI
<script>: HTML analizė sustoja, skriptas įkeliama ir vykdoma, tada HTML analizė atnaujinama. Blokuoja atvaizdavimą.<script async>: Skriptas įkeliama asinchroniškai, paraleliai su HTML analize. Kai tik skriptas įkeltas, HTML analizė sustoja, kad būtų vykdomas skriptas, tada tęsiama. Asinchroninių skriptų vykdymo tvarka nėra garantuota.<script defer>: Skriptas įkeliama asinchroniškai, paraleliai su HTML analize. Vykdymas atidedamas iki visiško HTML analizės ir DOM kūrimo pabaigos. Atidėto skripto vykdymo tvarka išlaikoma pagal jų tvarką dokumente.
Štai lentelė, apibendrinanti skirtumus:
| Ypatybė | Įkėlimas | Vykdymas | Blokuoja HTML analizę | Skriptų tvarka |
|---|---|---|---|---|
| nėra | Sinchroninis | Iš karto po įkėlimo | Taip | Garantija |
async |
Asinchroninis | Iš karto po įkėlimo (jei HTML vis dar analizuojama) | Taip (vykdymo metu) | Nėra garantuota |
defer |
Asinchroninis | Po visiško HTML įkėlimo ir DOM kūrimo | Ne (išskyrus vykdymo momentą, bet po HTML) | Garantija |
Ši lentelė apibendrina skirtumus.