Web Worker Nedir?
İngilizce: Web Worker
Web Worker, JavaScript'in ağır işleri ana arayüz thread'inden ayrı arka plan iş parçacığında çalıştırmasını sağlayan API'dir.
Web Worker Nedir?
Web Worker, tarayıcıda JavaScript kodunun ana arayüz thread’ini kilitlemeden arka planda çalışmasını sağlar. Böylece büyük veri işleme, dosya okuma, görsel dönüştürme veya karmaşık hesaplama sırasında sayfa kaydırma ve tıklama gibi etkileşimler donmaz.
Nasıl Çalışır?
Ana script bir worker dosyası başlatır ve onunla postMessage üzerinden mesajlaşır. Worker doğrudan DOM’a erişemez; sonuçları ana thread’e gönderir ve ekran güncellemesini ana kod yapar. Büyük veriler için transferable object veya SharedArrayBuffer gibi mekanizmalar kopyalama maliyetini azaltabilir.
Dedicated worker tek sayfa bağlamına hizmet eder; shared worker birden fazla sekme tarafından paylaşılabilir. Service worker ise offline cache ve network proxy rolüyle farklı bir amaç taşır. Async kod beklemeyi düzenler, ancak CPU yoğun işi tek başına ana thread’den çıkarmaz.
İş Dünyasında Kullanımı
Web worker; tarayıcıda CSV/Excel ayrıştırma, büyük tablo filtreleme, harita verisi işleme, görsel sıkıştırma ve şifreleme gibi işlemlerde kullanılır. Özellikle SaaS panellerinde kullanıcıya “bekliyor” hissi vermeden yerel hesaplama yapılmasını sağlar.
Worker eklemek her zaman gerekli değildir. Küçük görevlerde mesajlaşma maliyeti faydadan büyük olabilir; ayrıca hata yönetimi, build yapılandırması ve tarayıcı bellek kullanımı izlenmelidir.
İlgili Terimler
Asenkron programlama, ağ ve dosya gibi beklemeli işleri bloke etmeden çalıştırarak uygulamanın yanıt vermesini sağlar.
Intersection ObserverIntersection Observer, bir öğenin görünüm alanına veya seçili kapsayıcıya ne zaman girip çıktığını asenkron izleyen tarayıcı API'sidir.
Service WorkerService worker, web sayfasından ayrı çalışan ve ağ isteklerini yakalayıp cache, push bildirimi ve çevrimdışı deneyimi yöneten tarayıcı scriptidir.