Работники javascript web - как передать аргументы?
Найден ответ на некоторые из моих проблем, html5 веб-работников!!!
Как передать аргумент веб-работнику, используя этот базовый пример?
содержимое worker.js:
function doSomething() {
postMessage( ' done');
}
setTimeout ( "doSomething()", 3000 );
js code:
var worker = new Worker('worker.js');
worker.onmessage = function (event) {
alert(event.data);
};
Ответы
Ответ 1
Как вы можете видеть, у вас есть тот же механизм для сообщений "от рабочего к главному" и "от главного к рабочему".
- метод
postMessage
для отправки сообщений
- член
onmessage
для определения обработчика, который получает сообщения
В главном script:
worker.postMessage(data);
В рабочем script:
self.addEventListener("message", function(e) {
// the passed-in data is available via e.data
}, false);
... или просто...
onmessage = function(e) {
// the passed-in data is available via e.data
};
Возможно, данные должны быть строкой... (Firefox 3.5+ поддерживает передачу в JSON-совместимых объектах)
Ответ 2
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();
};
эта работа для меня