HTML5

10. Bölüm : HTML5 Web Workers ile Threading

HTML5 Web Workers'a neden ihtiyacımız var ? Çalışma durumu :
Henüz Çalışmıyor
HTML5 öncesi tek thread ile uzun çalışan bir iş :
function longRunningProcess() {
   var i = 0;
   while (i < 20000000000) {
      i++;
   }
   document.getElementById('status').innerHTML = "Bitti.";
   return;
}
Merhaba Web Workers : Demo
Set sayısı :
Set başına iş sayısı :
Merhaba Web Workers : AnaSayfa Kodu
var worker;
function createWorker() {
   if (typeof Worker != undefined) {
      worker = new Worker('scripts/worker_example.js');
      document.getElementById("divWorkers").innerHTML = "Worker oluşturuldu !";

      worker.onmessage = function (event) {
         document.getElementById("divWorkers").innerHTML += event.data;
      };

      var setCount = document.getElementById('txtSetCount').value;
      var processCount = document.getElementById('txtSetProcessCount').value;
      worker.postMessage({ 'setCount': setCount, 'processCount': processCount });
   }
}

function terminateWorker() {
worker.terminate();
document.getElementById("divWorkers").innerHTML += "Worker yokedildi !";
}
Merhaba Web Workers : Worker Kodu
// worker_example.js
// importScripts('another_js_lib.js','yet_another_js_lib.js');

this.onmessage = function (event) {
   postMessage('Worker calismaya basladi.');
   var data = event.data;

   var currentSet = 1;
   for (var currentProcess = 0; currentProcess <= data.processCount; currentProcess++) {
      if (currentProcess == data.processCount) {
         postMessage(currentSet + '. set bitti.');
         currentSet++;
         currentProcess = 0;
         if (currentSet == data.setCount) {
            break;
         }
      }
   }
   postMessage('Worker calismayi bitirdi.');
   close();
};