1
우리가 근무를 시작하고는 BLOB에서 개체의 URL을 생성 말 지금까지 전화 :수명 시간
이worker.terminate();
이 객체의 URL을 죽일 것인가, 또는 그것은을 위해 남아 : 작업자를 시작 코드의
u.revokeObjectURL(objUrl);
대신을, 우리는 단순히 전화 원본 페이지 창의 기간?
우리가 근무를 시작하고는 BLOB에서 개체의 URL을 생성 말 지금까지 전화 :수명 시간
이worker.terminate();
이 객체의 URL을 죽일 것인가, 또는 그것은을 위해 남아 : 작업자를 시작 코드의
u.revokeObjectURL(objUrl);
대신을, 우리는 단순히 전화 원본 페이지 창의 기간?
좋아, 답변이없는 상태에서, 나는 이것을 테스트하기로 결정 자신 :
var u = window.URL || window.webkitURL;
var f='('+
function(rootScope){
var u = rootScope.URL || rootScope.webkitURL;
var blob=new Blob([ "hello world!" ], { type: 'text/plain' });
var blobURL = u.createObjectURL(blob) ;
rootScope.postMessage(blobURL);
}.toString()+
')(this)';
console.log(f);
// Build a worker from an anonymous function body
var blobURL = u.createObjectURL(new Blob([ f ],
{ type: 'application/javascript' }));
var worker = new Worker(blobURL);
worker.onmessage=function(e){
worker.terminate();
setTimeout(function(){
var xhr = new XMLHttpRequest();
xhr.open('GET', e.data, false);
xhr.send(null);
console.log(xhr.responseText); //prints "hello world!"
},5000);
};
// Won't be needing this anymore
u.revokeObjectURL(blobURL);
에서 볼 수있는 바와 같이
, 우리는 웹 노동자를 종료에도 오초 후에, 우리는 여전히 객체의 URL을 읽을 수 있습니다 그것은 창조했다.