Sobes.tech
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.
  • async bilan 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 DOMContentLoaded voqeasidan oldin bajariladi.
  • defer bilan 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).
  • async atributi 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');