Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
if (!!window.Worker)Эта пять.var worker = new Worker(
window.URL.createObjectURL(
new BlobBuilder().append(
"onmessage = function(e) { postMessage('hello habrahabr'); }"
).getBlob()
)
);
worker.postMessage();При использовании данной технологии для выполнения простых действий выигрыш в скорости будет минимален. Однако при сложных вычислениях можно существенно ускорить работу системы.
if (!!window.Worker){
var worker = new Worker('worker.js');
worker.postMessage('Hellow World');
worker.onmessage = function (e){
alert(e.data);
};
}
onmessage = function(e){
transport = new XMLHttpRequest();
transport.open('GET', 'data.txt', true);
transport.onreadystatechange = function(){
if(transport.readyState == 4){
postMessage(transport.response);
}
};
transport.send();
};
1) А теперь о важном, о том, чего нет ни в одной статье про работников: для того чтобы получить адекватный ответ при использовании технологии AJAX, необходимо отсылать СИНХРОННЫЕ запросы методом POST.
2) Причина проста: при асинхронном запросе воркер заканчивает работу не дожидаясь ответа сервера. Логического объяснения почему не шлется методом GET я так и не нашел.
для того чтобы получить адекватный ответ при использовании технологии AJAX, необходимо отсылать СИНХРОННЫЕ запросы методом POST
var workerAjax = new Worker('/JS/workers/ajaxWorker.js'); при этом не выдает никакой ошибки… О_ООшибка: Could not get domain!
Источник: localhost/JS/workers/mainWorkers.js
Строка: 39
Maximum number of Web Worker instances(256) exceeded for this window.
HTML5: Web Workers и AJAX