Sobes.tech
Middle

Web İşçiləri nədir və onlar nə üçün lazımdır?

sobes.tech Süni İntellekt

AI-dan cavab

Web Workers resurslardan intensiv istifadə edən əməliyyatları fon axınlarında yerinə yetirməyə imkan verir, bu da JavaScript-in əsas icra axinini bloklamadan istifadəçi interfeysinin yenilənməsini təmin edir. Bu, səhifənin donmasının qarşısını alır və tətbiqin cavabvermə qabiliyyətini artırır, xüsusən böyük məlumat həcmləri, hesablamalar və ya şəbəkə sorğuları ilə işləyərkən.

Əsas Worker növləri:

  • Təyin olunmuş Worker: new Worker('worker.js') ilə yaradılır. Yalnız onu yaradan səhifə ilə işləyir və bu səhifənin skriptindən birbaşa idarə olunur.
  • Paylaşılan Worker: new SharedWorker('worker.js') ilə yaradılır. Eyni mənbədən olan müxtəlif pəncərələr və ya tablar arasında istifadə oluna bilər.
  • Xidmət Worker: Brauzer və şəbəkə arasında proxy kimi işləyir. Resursların keşiklenməsi, müstəqil işləmə və push bildirişlərinin həyata keçirilməsi üçün istifadə olunur.

Əsas axın və Worker arasında ünsiyyət asinxron olaraq mesajlar vasitəsilə həyata keçirilir:

  • postMessage(): bir axından digərinə məlumat göndərmək üçün.
  • onmessage hadisə idarəedicisi: digər axında məlumat almaq üçün.

Web Workers-in məhdudiyyətləri:

  • Birbaşa DOM-ya giriş imkanları yoxdur.
  • windowdocument obyektlərinə giriş imkanları yoxdur.
  • Əsas axının bəzi qlobal dəyişənlərinə və funksiyalarına giriş imkanları yoxdur.

Təyin olunmuş Worker istifadəsi nümunəsi:

// main.js
const worker = new Worker('worker.js');

worker.addEventListener('message', (event) => {
  console.log('Worker-dən alınan mesaj:', event.data);
});

worker.postMessage('Əsas axımdan salam!');

// worker.js
self.addEventListener('message', (event) => {
  console.log('Əsas axımdan alınan mesaj:', event.data);
  self.postMessage('Worker-dən salam!');
});