Web ワーカーに次のコードがあります。
self.addEventListener('message', function(e){
try {
var xhr=new XMLHttpRequest()
for(var i = 0; i < e.data.urls.length;i++){
xhr.open('GET', e.data.urls[i], true);
xhr.setRequestHeader('Accept', 'application/json');
xhr.send(null);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if (xhr.status == 200 || xhr.status == 304 || xhr.status ==0) {
postMessage(xhr.responseText);
} else {
postMessage(xhr.status + xhr.responseText);
throw xhr.status + xhr.responseText;
}
}
};
}
} catch (e) {
postMessage("ERROR:"+e.message);
}
}, false);
e.data.urls には、UI スレッドで次のように処理される 16 のリクエストが含まれています。
var replies = 0;
worker.addEventListener('message', function(e){
replies += 1;
});
10 個のリクエストしか完了していません。これは、すべてのリクエストが返される前に UI スレッドが停止したためですか、それとも他に何か不足していますか?