Sobes.tech
Middle

Web İşçileri nedir ve ne işe yararlar?

sobes.tech yapay zeka

AI'dan gelen yanıt

Web İşçileri, kullanıcı arayüzünün çiziminden sorumlu ana JavaScript yürütme akışını engellemeden arka plan akışlarında kaynak yoğun işlemleri gerçekleştirmeye olanak tanır. Bu, sayfanın donmasını önler ve özellikle büyük veri hacimleri, hesaplamalar veya ağ istekleriyle çalışırken uygulamanın yanıt verme kabiliyetini artırır.

Ana İşçi türleri:

  • Özel İşçi: new Worker('worker.js') kullanılarak oluşturulur. Sadece onu oluşturan sayfa ile çalışır ve bu sayfanın betiğinden doğrudan yönetilir.
  • Paylaşılan İşçi: new SharedWorker('worker.js') kullanılarak oluşturulur. Aynı kaynaktan farklı pencereler veya sekmelerdeki birkaç betik tarafından erişilebilir.
  • Servis İşçisi: Tarayıcı ile ağ arasında bir proxy gibi çalışır. Kaynakların önbelleğe alınması, bağımsız çalışma ve push bildirimleri uygulaması için kullanılır.

Ana akış ile İşçi arasındaki iletişim asenkron olarak mesajlar aracılığıyla gerçekleşir:

  • postMessage(): bir akıştan diğerine veri göndermek için.
  • onmessage olay işleyicisi: diğer akışta veri almak için.

Web İşçileri kısıtlamaları:

  • DOM'ye doğrudan erişimleri yoktur.
  • window ve document nesnelerine erişimleri yoktur.
  • Ana akışın bazı küresel değişkenlerine ve fonksiyonlarına erişimleri yoktur.

Özel İşçi kullanımı örneği:

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

worker.addEventListener('message', (event) => {
  console.log('İşçiden alınan mesaj:', event.data);
});

worker.postMessage('Ana akıştan merhaba!');

// worker.js
self.addEventListener('message', (event) => {
  console.log('Ana akıştan alınan mesaj:', event.data);
  self.postMessage('İşçiden merhaba!');
});