대용량 데이터를 처리하는 웹 작업자를 만들었습니다.동일한 웹 작업자에게 여러 요청을 처리하는 방법
내가 callWorker
여러 번 실행하지 않으려는이 경우
self.addEventListener('message', function(e) {
console.log('Message received from main script');
for(var i=0; i<999999999; i++){
// computation here
}
console.log('Posting message back to main script');
self.postMessage('You said: ' + e.data);
}, false);
홈페이지 스크립트
var myWorker;
if (window.Worker) {
if(typeof(w)=="undefined"){
myWorker = new Worker("scripts/controllers/workers.js");
}
}
myWorker.addEventListener('message', function(e) {
console.log('Message received from worker'+ e.data);
}, false);
function callWorker(someData){
myWorker.postMessage(someData);
}
callWorker(someData);//first time call - by user click
callWorker(someOtherData);//second time call - again user click (don't want to disable button)
을 worker.js : 다음 코드 구현입니다. 내가 원하는 것은 callWorker
이 현재 실행 중이며 callWorker
에 대한 두 번째 요청 발생 중에 첫 번째 요청이 종료되어야하고 두 번째 요청이 처리되어야한다는 것입니다 (최신 요청이 처리되어야 함).
어떻게하면됩니까? 도움을 주셔서 감사합니다