메인 스레드 병목 분리
파싱, 압축, 이미지 처리, 긴 계산처럼 UI를 막는 작업은 worker로 보내 메시지로 결과를 받습니다.
계산웹 워커는 현재 페이지의 무거운 계산을 메인 스레드 밖으로 옮깁니다. 서비스 워커는 페이지와 독립적으로 네트워크 요청을 가로채 캐시, 오프라인, 푸시 같은 앱 수준 기능을 담당합니다.
파싱, 압축, 이미지 처리, 긴 계산처럼 UI를 막는 작업은 worker로 보내 메시지로 결과를 받습니다.
계산postMessage는 복사 비용이 있으므로 큰 바이너리는 Transferable을 써서 소유권을 넘깁니다.
통신install, activate, fetch 이벤트를 통해 캐시 준비, 이전 캐시 정리, 요청 전략을 구성합니다.
수명 주기새 서비스 워커가 바로 적용되지 않을 수 있으므로 사용자 새로고침, skipWaiting, 캐시 버전을 정책으로 정합니다.
운영const worker = new Worker('/heavy-task.js');
worker.postMessage({ items
overflow-wrap: break-word;
word-break: keep-all;
});
worker.onmessage = (event) => render(event.data);