아래 이미지는 두 개의 작업자가 설치되어 있음을 보여줍니다. 하나는 활성 상태이고 다른 하나는 활성 상태가 아닙니다 (방금 설치됨). 이전 서비스 직원을 어떻게 중지 하시겠습니까?
-
는 - 이
service-worker.js
을 변경하는 서비스 노동자를 등록하고 페이지를 다시로드합니다. - 논리는 서비스 근로자가 바이너리 diff를 확인하고 작업자의 버전을 업데이트한다는 것입니다.
새 서비스 작업자가 새 버전 ID로 생성됩니다. 그런데 왜 오래된 제품이 계속 작동합니까? 어떻게 닫을 수 있습니까? 그 이전 서비스 노동자에 의해 제어되는 페이지에있는 모든 탭이/언로드 닫힐 때까지
sw.js
은, 기본적으로 여기 https://gist.github.com/boopathi/57b7e8b6d657d55bdc7d
'skipWaiting()'과'clients.claim()'는 controllerchange 이벤트를 트리거하지 않는 것 같습니다. 저는 현재 SW에 관한 강의를보고 있습니다 - https://classroom.udacity.com/courses/ud899/ 그리고 현재 유일한 옵션은 페이지를 떠나 다시 돌아 오는 것입니다. SkipWaiting이 나를 위해 작동하지 않았다 –
하지만 12/2015 년경에 효과가있는 것으로 보입니다. –