티스토리 뷰
자바스크립트는 인터프리터 언어이며 단일 스레드 이다.
자바스크립트에서 동적으로 UI변경 작업이 있을시에는 UI스레드 라는 공간에서 큐 방식으로 처리 순서를 담아 놓는다.
앱 워커는 멀티스레드 기능을 지원하며 워커가 생성될 때마다 자바스크립트를 실행할 수 있는 고유 스레드를 생성하여 속도 성능을 크게 향상시킬 수 있다. 워커에서 실행하는 코드는 브라우저 UI에도, 다른 워커에서 실행하는 코드에도 영향을 주지 않는다.
즉 독립접으로 실행되는 멀티스레드 이다.
웹워커는 다음과 같은 상황에서 사용하기 적절하다.
1) 매우 큰 문자열의 암호화/복호화
2) 복잡한 수학계산(이미지/비디오 처리 포함)
3) 매우 큰 배열의 정렬
=> 즉 로딩과 실행이 오래 걸리는 자바스크립트 파일
간단한 예제를 보자 ( 2개 파일을 생성 )
worker.html
worker.js
postMessage 에 전달 될 수 있는 인자 타입 값은 String, Integer, Boolean, null, undefined, Object, Array 이다.
거의 다 된다고 봐도 무방하다
워커는 HTML5에서만 작동이 되기 때문에 버전이 높은 브라우저와 안드로이드 4 이상부터 호환이 된다. 아이폰 유저가 아니라 패스..
IE7, IE8도 작업을 맞추어야 한다면 워커는 작동하지 않겠지만 최신 브라우저에서는 사용이 되니 속도를 개선할 수 있다