Middle
<script> tegi modlarining (async, defer yoki type) ishlashidagi farq nima?
sobes.tech AI
AIdan javob
<script> atributisiz
- HTML
<script>tegigacha tahlil qilinadi. <script>tegini aniqlash bilan HTML tahlili to‘xtatiladi.- Skript yuklanadi.
- Skript bajariladi.
- Skript bajarilgandan so‘ng HTML tahlili davom etadi.
<script async>
- HTML skriptni yuklash bilan bir vaqtda tahlil qilinadi.
- Skript yuklanishi tugaganidan so‘ng HTML tahlili to‘xtatiladi.
- Skript bajariladi.
- Skript bajarilgandan so‘ng HTML tahlili davom etadi.
asyncbilan skriptlarning bajarilish tartibi kafolatlanmaydi, yuklanish tezligiga bog‘liq.
<script defer>
- HTML skriptni yuklash bilan bir vaqtda tahlil qilinadi.
- Skript HTML tahlili tugaganidan so‘ng, lekin
DOMContentLoadedvoqeasidan oldin bajariladi. deferbilan skriptlarning bajarilish tartibi kafolatlanadi, HTMLda ko‘rinish tartibiga mos keladi.- Xulq-atvor
</body>yopilish tegidan oldin joylashtirilgan<script>ga o‘xshash.
<script type="module"> (ECMAScript modullari uchun)
- Standartda
<script defer>kabi ishlov beriladi (kechiktirilgan bajarilish, tartib saqlanadi). asyncatributi bilan ishlatilishi mumkin.- Modullarning import/export funksiyalarini qo‘llab-quvvatlaydi. Alohida scope (doira) yaratadi.
| Atribut | Skript yuklanishi | Skript bajarilishi | HTML tahlilini bloklash | Bajarilish tartibi |
|---|---|---|---|---|
| Yo‘q | Bloklaydi | Bloklaydi | Ha | Saqlanadi |
async |
Bloklamaydi (parallel) | Bloklamaydi (yuklash tugagach) | Yo‘q | Garantilashmaydi |
defer |
Bloklamaydi (parallel) | Bloklamaydi (HTML tahlilidan so‘ng) | Yo‘q | Saqlanadi |
type="module" |
Bloklamaydi (parallel) | Bloklamaydi (HTML tahlilidan so‘ng, standart) | Yo‘q | Saqlanadi (standart) |
// Oddiy skript misoli
console.log('Oddiy skript');
// Asinxron skript misoli
console.log('Asinxron skript');
// Kechiktirilgan skript misoli
console.log('Kechiktirilgan skript');
// Modul misoli
import { someFunction } from './module.js';
someFunction();
console.log('Modul skripti');