HTML Eğitimi

HTML ANA SAYFA HTML'ye Giriş HTML Düzenleyiciler HTML Temel HTML Öğeleri HTML Özellikleri HTML Başlıkları HTML Paragrafları HTML Stilleri HTML Biçimlendirme HTML Alıntılar HTML Yorumları HTML Renkleri HTML CSS'si HTML Bağlantıları HTML Görselleri HTML Sık Kullanılan Simgesi HTML Tabloları HTML Listeleri HTML Bloğu ve Satır İçi HTML Sınıfları HTML Kimliği HTML İç Çerçeveleri HTML JavaScript'i HTML Dosya Yolları HTML Başlığı HTML Düzeni HTML Duyarlı HTML Bilgisayar Kodu HTML Semantiği HTML Stil Kılavuzu HTML Varlıkları HTML Sembolleri HTML Emojileri HTML Karakter Seti HTML URL Kodlaması HTML'ye karşı XHTML

HTML Formları

HTML Formları HTML Formu Nitelikleri HTML Form Öğeleri HTML Giriş Türleri HTML Girdi Nitelikleri HTML Giriş Formu Nitelikleri

HTML Grafikleri

HTML Kanvas HTML SVG'si

HTML Ortamı

HTML Ortamı HTML Videosu HTML Ses HTML Eklentileri HTML YouTube

HTML API'leri

HTML Coğrafi Konum HTML Sürükle/Bırak HTML Web Depolama HTML Web Çalışanları HTML ÖAM

HTML Örnekleri

HTML Örnekleri HTML Testi HTML Alıştırmaları HTML Sertifikası HTML Özeti HTML Erişilebilirliği

HTML Referansları

HTML Etiket Listesi HTML Özellikleri HTML Genel Nitelikleri HTML Tarayıcı Desteği HTML Olayları HTML Renkleri HTML Kanvas HTML Ses/Video HTML Doktipleri HTML Karakter Kümeleri HTML URL Kodlaması HTML Dil Kodları HTTP Mesajları HTTP Yöntemleri PX'den EM'ye Dönüştürücü Klavye kısayolları

HTML Web Çalışanları API'si


Web çalışanı, sayfanın performansını etkilemeden arka planda çalışan bir JavaScript'tir.


Web Çalışanı nedir?

Bir HTML sayfasında komut dosyaları yürütülürken, komut dosyası tamamlanana kadar sayfa yanıt vermemeye başlar.

Web çalışanı, sayfanın performansını etkilemeden diğer komut dosyalarından bağımsız olarak arka planda çalışan bir JavaScript'tir. Web işçisi arka planda çalışırken, istediğinizi yapmaya devam edebilirsiniz: tıklama, bir şeyler seçme, vb.


Tarayıcı Desteği

Tablodaki sayılar, Web Workers'ı tam olarak destekleyen ilk tarayıcı sürümünü belirtir.

API
Web Workers 4.0 10.0 3.5 4.0 11.5

HTML Web Çalışanları Örneği

Aşağıdaki örnek, arka planda sayıları sayan basit bir web çalışanı oluşturur:

Örnek

Count numbers:


Web Çalışanı Desteğini Kontrol Edin

Bir web çalışanı oluşturmadan önce, kullanıcının tarayıcısının bunu destekleyip desteklemediğini kontrol edin:

if (typeof(Worker) !== "undefined") {
  // Yes! Web worker support!
  // Some code.....
} else {
  // Sorry! No Web Worker support..
}


Bir Web Çalışanı Dosyası Oluşturun

Şimdi, web çalışanımızı harici bir JavaScript'te oluşturalım.

Burada, sayan bir komut dosyası oluşturuyoruz. Komut dosyası "demo_workers.js" dosyasında saklanır:

var i = 0;

function timedCount() {
  i = i + 1;
  postMessage(i);
  setTimeout("timedCount()",500);
}

timedCount();

Yukarıdaki kodun önemli kısmı postMessage(), HTML sayfasına bir mesaj göndermek için kullanılan yöntemdir.

Not: Normalde web çalışanları bu tür basit komut dosyaları için değil, daha fazla CPU yoğun görev için kullanılır.


Bir Web Çalışanı Nesnesi Oluşturun

Artık web işçi dosyasına sahip olduğumuza göre, onu bir HTML sayfasından çağırmamız gerekiyor.

Aşağıdaki satırlar, çalışanın zaten var olup olmadığını kontrol eder, değilse - yeni bir web çalışanı nesnesi oluşturur ve kodu "demo_workers.js" içinde çalıştırır:

if (typeof(w) == "undefined") {
  w = new Worker("demo_workers.js");
}

Ardından web çalışanından mesaj gönderip alabiliriz.

Web çalışanına bir "onmessage" olay dinleyicisi ekleyin.

w.onmessage = function(event){
  document.getElementById("result").innerHTML = event.data;
};

Web çalışanı bir mesaj gönderdiğinde, olay dinleyicisindeki kod yürütülür. Web çalışanından alınan veriler, event.data'da saklanır.


Bir Web Çalışanını Sonlandırma

Bir web işçisi nesnesi oluşturulduğunda, sonlandırılana kadar (harici komut dosyası tamamlandıktan sonra bile) mesajları dinlemeye devam edecektir.

Bir web çalışanını ve ücretsiz tarayıcı/bilgisayar kaynaklarını sonlandırmak için şu terminate()yöntemi kullanın:

w.terminate();

Web Çalışanını Yeniden Kullanın

Çalışan değişkeni tanımsız olarak ayarlarsanız, sonlandırıldıktan sonra kodu yeniden kullanabilirsiniz:

w = undefined;

Tam Web Çalışanı Örnek Kodu

Worker kodunu .js dosyasında zaten görmüştük. HTML sayfasının kodu aşağıdadır:

Örnek

<!DOCTYPE html>
<html>
<body>

<p>Count numbers: <output id="result"></output></p>
<button onclick="startWorker()">Start Worker</button>
<button onclick="stopWorker()">Stop Worker</button>

<script>
var w;

function startWorker() {
  if (typeof(Worker) !== "undefined") {
    if (typeof(w) == "undefined") {
      w = new Worker("demo_workers.js");
    }
    w.onmessage = function(event) {
      document.getElementById("result").innerHTML = event.data;
    };
  } else {
    document.getElementById("result").innerHTML = "Sorry! No Web Worker support.";
  }
}

function stopWorker() {
  w.terminate();
  w = undefined;
}
</script>

</body>
</html>

Web Çalışanları ve DOM

Web çalışanları harici dosyalarda olduğundan, aşağıdaki JavaScript nesnelerine erişimleri yoktur:

  • pencere nesnesi
  • belge nesnesi
  • ana nesne