我希望能够在foreach循环中动态创建Web worker。我不确定我是否正确地这样做,但这是我正在尝试的。
main.js:
$('#action-options').on('click', '#act_restart', function() {
$.each(checked, function(key, val) {
var worker = new Worker('js/doWork.js');
worker.addEventListener('message', onMsg, false);
worker.addEventListener('error', onError, false);
worker.postMessage({'inst': val});
});
});
doWork.js中
self.addEventListener('message', function(e) {
var data = e.data;
var xmlhttp;
var tableData;
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
tableData = xmlhttp.responseText;
self.postMessage(tableData);
}
}
xmlhttp.open("GET", "../apicall/"+data.inst, true);
xmlhttp.send();
}, false);
我想为每个AJAX调用触发一个worker,这样如果一个人花费的时间比另一个长,那么它就不会占用页面。或任何其他人。
网络工作者如何做到这一点?