2010-10-25 20 views
17

Bazı problemlerimin cevabı bulundu, html5 web çalışanları !!!javascript web çalışanları - nasıl argümanları geçebilirim?

Bu temel örneği kullanarak nasıl bir argümanı bir web çalışanına iletirim? worker.js ait

içeriği:

function doSomething() { 
    postMessage(' done'); 
} 
setTimeout ("doSomething()", 3000); 

js kodu: Eğer işçi-to-Ana ve hem ana-to-işçi mesajlar için aynı mekanizmaya sahip görebileceğiniz gibi

var worker = new Worker('worker.js'); 
    worker.onmessage = function (event) { 
    alert(event.data); 
    }; 
+0

Kullanım setTimeout: 'setTimeout (doSomething, 3000);' hiçbir ekstra değerlendirme oluyor olduğundan daha iyi olur ... –

+0

https://developer.mozilla.org/En/Using_web_workers mükemmel – epascarello

cevap

25

.

  • ana komut olarak mesajlarını

alır işleyicisi tanımlamak için mesajlarını

  • onmessage elemanı göndermek için postMessage yöntemi: işçi komut dosyası

    worker.postMessage(data); 
    

    :

    self.addEventListener("message", function(e) { 
        // the passed-in data is available via e.data 
    }, false); 
    

    ... ya da sadece ...

    onmessage = function(e) { 
        // the passed-in data is available via e.data 
    }; 
    

    O veri olabilir ...

  • +2

    Teşekkürler! – Joe

    +5

    @Joe Ben gerçekten orada IE içinde uygulanmayan yeni özellikleri kullanan insanlar var sevindim :) –

    +0

    kendini orada nedir? self.addEventListener içinde? –

    0
    var worker = new Worker(window.App.baseUrl + '/Scripts/signature/GetCurrenProductWorker.js'); 
            worker.postMessage(window.App.baseUrl) 
    
    
        var _base_url = '' 
         var xhr = new XMLHttpRequest(); 
         onmessage = function (e) { 
          _base_url = e.data 
          xhr.open("GET", _base_url + "/api/product/Get"); 
          xhr.onload = function() { 
           postMessage(xhr.responseText); 
          }; 
          xhr.send(); 
    
         }; 
    

    (Firefox 3.5+ JSON uyumlu nesneleri geçen destekler) bir dize olmak zorunda Benim için bu iş şöyle

    İlgili konular