Sobes.tech
Middle

Makro va mikro vazifalar nima?

sobes.tech AI

AIdan javob

Makro vazifalar brauzerning katta, yuqori darajadagi ish bosqichlaridir, masalan, HTML tahlili, DOM qurilishi, CSSOM qurilishi, uslublarni hisoblash, render daraxtini qurish, joylash (Layout), bo'yash (Paint) va kompozitsiya (Composite). Ular asosiy render liniyasini tashkil etadi.

Micro vazifalar esa kichikroq, tafsilotliroq harakatlar bo'lib, ular hozirgi makro vazifa tugagach va keyingi boshlanishidan oldin bajariladi. Ularga Promise, MutationObserver, queueMicrotask kiradi.

Asosiy farq shundaki, micro vazifalar har doim darhol hozirgi makro vazifa tugagach bajariladi, keyingi makro vazifa (masalan, keyingi render freymi yoki setTimeout vaqt belgilovchi voqea) faqat micro vazifalar navbati bo'sh bo'lsa bajariladi.

Bajarilish tartibi misoli:

// Makro vazifa ( boshlang'ich kod)
console.log('Boshlanish');

// Makro vazifa (timer)
setTimeout(() => {
  console.log('Vaqt belgilovchi');
}, 0);

// Micro vazifa (promis)
Promise.resolve().then(() => {
  console.log('Promis');
});

// Makro vazifa (oxirgi boshlang'ich kod)
console.log('Oxir');

Konsolda chiqishi:

Boshlanish
Oxir
Promis
Vaqt belgilovchi

Bajarilish tartibi:

  1. Asosiy makro vazifa (asosiy skript) bajariladi.
  2. console.log('Boshlanish').
  3. setTimeout makro vazifani navbatga qo'yadi.
  4. Promise.resolve().then() mikro vazifani navbatga qo'yadi.
  5. console.log('Oxir').
  6. Asosiy makro vazifa tugaydi.
  7. Micro vazifalar navbati tekshiriladi: Promise.resolve().then() bajariladi.
  8. console.log('Promis').
  9. Micro vazifalar navtasi bo'sh.
  10. Brauzer voqea siklida vazifalarni bajaradi, keyingi makro vazifaga o'tadi.
  11. setTimeout makro vazifasi bajariladi.
  12. console.log('Vaqt belgilovchi').
  13. Makro vazifa tugaydi.

Bu tushuncha asinxron operatsiyalar bajarilish tartibini boshqarish va Event Loop qanday ishlashini tushunish uchun muhimdir.