CodeBlanks Logo Icon CodeBlanks

Özet - Web Workers

JavaScript kursu · Uzman · Ders 24/63

Worker kullanarak büyük bir diziyi arka planda sıralayan bir uygulama yazarsın.

Özet - Web Workers

Bu grupta worker oluşturmayı, mesajlaşmayı, yanıt almayı ve büyük veriyi transfer etmeyi öğrendin. Şimdi hepsini birleştirip arka planda dizi sıralayan bir uygulama yazacağız.

Akış şu: ana dizi büyük bir sayı dizisini worker'a gönderir; worker sıralayıp sonucu geri gönderir; ana dizi onmessage ile yakalar. Büyük veriyi ArrayBuffer ile taşıyarak kopyalama maliyetini de unutuyoruz.

Uygulama Sorter worker'ı başlat ve dizi gönder

'sorter.js' dosyasından worker oluştur. Sonra worker.postMessage ile { numbers: [9, 3, 7] } gönder.

Örnek çözümü göster
const worker = new Worker('sorter.js');
worker.postMessage({ numbers: [9, 3, 7] });

Uygulama Büyük buffer'ı transfer et

buffer adında 1024 baytlık bir ArrayBuffer oluştur. Sonra worker.postMessage(buffer, [buffer]) ile sahipliği devrederek gönder.

Örnek çözümü göster
const buffer = new ArrayBuffer(1024);
worker.postMessage(buffer, [buffer]);

Kendini test et

  1. Sıralama worker'ında akış nedir?

    • Worker veriyi çeker, sonra sıralar
    • Ana dizi sıralar, worker gösterir
    • Ana dizi gönderir, worker sıralayıp geri gönderir
    • Worker dosyaya yazar, ana dizi okur
    Cevabı göster

    Ana dizi gönderir, worker sıralayıp geri gönderir — Doğru! Ana dizi veriyi gönderir, worker sıralayıp sonuç döner.

  2. Sonucu yakala

    worker.____ = function(event) {
      console.log(event.data);
    };
    Cevabı göster
    worker.onmessage = function(event) {
      console.log(event.data);
    };

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