웹 워커(Web Worker)

CODEDRAGON Development/Web, WWW

반응형

 

 

웹 워커(Web Worker)

·       자바스크립트의 처리를 백그라운드에서 실행하는 기능을 제공합니다.

·       브라우저가 OS-레벨의 스레드를 생성하여 브라우저에 부담을 주지 않고 백그라운드에서 빠르게 스크립트 연산을 수행할 수 있습니다.

 

 

 

워커의 사용

Worker 객체 만들기 (생성)

·       백그라운드에서 작업할 스크립트를 별도의 파일에 작성하고,

·       매개변수로 워커용 스크립트의 URL을 지정하면 해당 스크립트의 Worker 객체를 반환하고 그 스크립트를 워커로 실행합니다.

·       그리고, onmessage 속성에 함수를 대입하여 작업결과를 돌려 받을 수 있습니다.

 

var w = new Worker(scriptURL);

w.onmessage = function(event){

        //Worker 의해 실행될 콜백

};     

 

 

실행 중인 Worker 종료

terminate 메소드를 호출하여 즉시 종료할 수 있습니다.

종료 메소드가 호출되면 남은 작업을 마무리하거나 메모리를 정리한 후 사라지게 됩니다.

 

w.terminate();

 

 

워커에 메시지 전송

//워커에  메시지 보내기

worker.postMessage(message);

 

 

부모 페이지에서 보내온 메시지 수신

//부모로부터 메시지가 왔을 때의 처리

self.onmessage = function(event){

//내용 처리

//처리 결과를 부모에 메시지로 보내기

self.postMessage(n);

};

 

부모 페이지에서 워커에서 보낸 메시지 수신

worker.onmessage = function(event){

};