Web Worker
 script 실행을 백그라운드 쓰레드에서 실행
Worker 내에서는 DOM을 직접 다룰 수 없음
Message System을 통해 Worker와 메인 쓰레드 간 통신

시작 : new Worker()
종료 : webworker.terminate();

Worker.postMessage() : worker -> main
Worker.onmessage : main 에서 받음



http://tcpschool.com/html/html5_api_webWorker
예제) http://tcpschool.com/examples/tryit/tryhtml.php?filename=html5_api_webWorker_01

 

<p>현재까지 발견한 소수의 개수는 <output id="result"></output>입니다.</p>
<button onclick="startWorker()">Web Worker 시작</button> 
<button onclick="stopWorker()">Web Worker 종료</button>
<p>위의 스크립트가 실행되는 동안에도 텍스트 필드에 글을 쓰는 작업을 동시에 할 수 있습니다!</p>
<textarea rows="10" cols="50"></textarea>
<script>
	var webworker;
	function startWorker() {
		if(typeof(Worker) !== "undefined") {		// web worker 지원 여부 확인
			if(typeof(webworker) == "undefined") {	// web worker 객체 생성
				webworker = new Worker("/examples/media/web_worker.js");
			}
			webworker.onmessage = function(event) {	// web worker 객체와의 연결
				document.getElementById("result").innerHTML = event.data;
			};
		} else {
			document.getElementById("result").innerHTML = "이 문장은 사용자의 웹 브라우저가 Web Worker API를 지원하지 않을 때 나타납니다!";
		}
	}
	function stopWorker() { 
		webworker.terminate();	// web worker 객체의 실행 종료
		webworker = undefined;	// web worker 객체의 재사용
	}
</script>



//===============
//참고
https://developer.mozilla.org/ko/docs/Web/API/Web_Workers_API


반응형

'Code > JavaScript' 카테고리의 다른 글

[Javascript] 클로저 , Closure  (0) 2019.07.20
[Javascript] 호이스팅(Hoisting)  (0) 2019.07.20
[Javascript] this  (0) 2019.07.19
[Javascript] ES2015 객체 리터럴  (0) 2019.07.19
NPM 사용법  (0) 2019.04.10
Posted by codens