큰 계산, 파싱, 압축은
new Worker(url, { type: "module" })로 UI 스레드 밖에
둡니다.
웹 워커 선택 기준
웹 워커는 DOM 접근 없이 계산을 분리하고, 서비스 워커는 HTTPS 등록 뒤 fetch와 Cache API 사이에서 요청을 제어합니다.
01Long Task 50ms+
02new Worker()
03structured clone
04fetch cache
복사 비용이 큰 ArrayBuffer는 transfer list로 넘기고, 함수나 DOM 노드는 DataCloneError를 냅니다.
navigator.serviceWorker.register()는 보안 컨텍스트와
scope를 만족해야 fetch 이벤트를 가로챕니다.
install 실패, activate 대기, stale cache가 보이면 skipWaiting과 cache version 정리를 점검합니다.