Makro və mikro tapşırıqlar nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Makro vəzifələr brauzerin böyük, yüksək səviyyəli iş mərhələləridir, məsələn, HTML parsing, DOM qurulması, CSSOM qurulması, stillərin hesablanması, render ağacının qurulması, layout, paint və composite. Onlar əsas render xəttini təşkil edir.
Mikro vəzifələr isə daha kiçik, detallı əməliyyatlar olub, cari makro vəzifə tamamlandıqdan və növbəti vəzifə başlamazdan əvvəl yerinə yetirilir. Bunlara Promise, MutationObserver, queueMicrotask daxildir.
Əsas fərq odur ki, mikro vəzifələr hər zaman derhal cari makro vəzifədən sonra yerinə yetirilir, növbəti makro vəzifə (məsələn, növbəti render çərçivəsi və ya setTimeout timer hadisəsi) yalnız mikro vəzifələr növbəsi boş olduqda yerinə yetirilir.
İcranın nümunə sırası:
// Makro vəzifə (başlanğıc kodu)
console.log('Başlanğıc');
// Makro vəzifə (zamanlayıcı)
setTimeout(() => {
console.log('Zamanlayıcı');
}, 0);
// Mikro vəzifə (promis)
Promise.resolve().then(() => {
console.log('Promis');
});
// Makro vəzifə (son başlanğıc kodu)
console.log('Son');
Konsolda çıxış:
Başlanğıc
Son
Promis
Zamanlayıcı
İcranın sırası:
- Əsas makro vəzifə (əsas skript) icra olunur.
console.log('Başlanğıc').setTimeoutmakro vəzifəni növbəyə qoyur.Promise.resolve().then()mikro vəzifəni növbəyə qoyur.console.log('Son').- Əsas makro vəzifə tamamlanır.
- Mikro vəzifələr növbəsi yoxlanır:
Promise.resolve().then()icra edilir. console.log('Promis').- Mikro vəzifələr növbəsi boşdur.
- Brauzer hadisələr döngüsündə vəzifələri işləyir, növbəti makro vəzifəyə keçir.
setTimeoutmakro vəzifəsi işlənir.console.log('Zamanlayıcı').- Makro vəzifə tamamlanır.
Bu anlayış asinxron əməliyyatların icra sırasını idarə etmək və Event Loop-un necə işlədiyini anlamaq üçün vacibdir.