CodeBlanks Logo Icon CodeBlanks

Web Workers nedir?

JavaScript kursu · Uzman · Ders 19/63

Web Workers ile ağır işlemleri arka plan dizisine taşıyıp ana diziyi bloklamamayı öğrenirsin.

Web Workers nedir?

Web Worker, JavaScript kodunu ana diziden ayrı bir arka plan dizisinde (background thread) çalıştıran mekanizmadır. Normalde tüm JavaScript tek dizide çalışır; uzun süren bir işlem ana diziyi bloklar ve sayfa donar.

Bir worker, ağır hesaplamaları arkada yürütüp ana diziyi serbest tutar. Böylece kullanıcı arayüzü akıcı kalır ve düğmeler hâlâ tıklanabilir olur. Worker ile ana dizi yalnızca mesajlaşarak haberleşir; bellek doğrudan paylaşılmaz.

Worker kapsamı

Bir worker ayrı bir global kapsamda (worker scope) çalışır; window nesnesine erişemez. Bunun yerine self anahtar sözcüğü worker'ın global nesnesini verir.

Worker içinden document, localStorage ya da console gibi tarayıcı API'lerinin bir kısmı kullanılamaz. Ancak fetch, IndexedDB ve setTimeout gibi API'ler worker'da çalışır. DOM'a dokunmak yasaktır; arayüzü yalnızca ana dizi günceller.

Uygulama Web Worker desteğini denetle

window üzerinde 'Worker' özelliğinin varlığını in ile kontrol et. Yoksa console.log ile 'unsupported', varsa 'supported' yazdır.

Örnek çözümü göster
if (!('Worker' in window)) {
  console.log('unsupported');
} else {
  console.log('supported');
}

Kendini test et

  1. Bir Web Worker ne işe yarar?

    • Ağır işlemi arka plan dizisinde çalıştırıp ana diziyi bloklamaz
    • Sayfadaki tüm HTML öğelerini seçer
    • Sunucudan veri çeker
    • CSS stillerini değiştirir
    Cevabı göster

    Ağır işlemi arka plan dizisinde çalıştırıp ana diziyi bloklamaz — Doğru! Worker ağır hesabı arka plan dizisinde yapar, ana dizi serbest kalır.

  2. Worker ve ana dizi farkları

    window
    ana dizi globali
    self
    worker globali
    document
    yalnız ana dizi
    postMessage
    iki taraf da
  3. Worker oluştur

    const worker = new ____('sorter.js');
    Cevabı göster
    const worker = new Worker('sorter.js');

Uzman bölümündeki tüm dersler