0
Попытка получить изображение в base64 от веб-рабочего. Все отлично, за исключением того, работник ответив несколько раз .onmessage
событие:Почему WebWorker несколько раз запускает событие сообщения?
main.js части:
var worker = new Worker('js/ww.js');
worker.onmessage = function(e) {
console.log(e);
};
worker.postMessage({ url: '/api/aerial?x=159&y=94&zoom=8&base64=true' });
ww.js, WebWorker части:
var self = this;
function makeRequest(url) {
var httpRequest = new XMLHttpRequest();
if (!httpRequest) {
console.error('Giving up. Cannot create an XMLHTTP instance.');
return false;
}
httpRequest.onreadystatechange = function() {
var response = httpRequest.responseText;
self.onMessage = postMessage(response);
};
httpRequest.open('GET', url, true);
httpRequest.send();
}
self.addEventListener('message', function(event) {
makeRequest(event.data.url);
});
Почему это срабатывает несколько раз?
Возможно, это произошло из-за использования такого родного AJAX?
спасибо! :) забыл об этом, долгое время не использовал простой AJAX, и теперь это необходимо, потому что jQuery нельзя загружать в экземпляр WebWorker, потому что у WebWorker нет объектов окна или документа –