Chrome 확장 프로그램은 서비스 워커(SW)를 활용하여 특정 웹 요청을 가로채고 처리합니다. 그러나 SW는 본질적으로 비지속적이므로 일정 기간 동안 활동이 없거나 런타임 5분 후에 자동으로 종료됩니다. 이는 지속적인 연결을 유지하거나 장기 실행 작업을 수행해야 하는 확장 프로그램을 방해할 수 있습니다.
일시적인 특성에도 불구하고 SW에서 지속성을 달성하기 위한 몇 가지 전략이 있습니다.
Chrome 110의 버그 악용
비동기 Chrome API를 일정한 간격(예: 20초마다)으로 호출하면 SW가 추가로 30초 동안 활동을 유지할 수 있습니다.
오프스크린 API Chrome 109
오프스크린 API를 사용하면 다음을 보내는 오프스크린 문서를 만들 수 있습니다. 30초 이하마다 메시지를 연결하여 SW 활동을 보존합니다.
Chrome 105의 NativeMessaging
SW는 Chrome을 통해 기본 메시징 호스트에 대한 연결을 설정할 수 있습니다. .runtime.connectNative 메소드. 이 연결은 호스트 프로세스가 계속 실행되는 한 SW의 수명을 연장합니다.
Chrome 116의 WebSocket API
WebSocket 메시지를 30초보다 덜 자주 교환하면 연결이 유지됩니다. 열려 있고 SW가 활성화되어 있습니다.
다른 핑을 보내는 중 탭
열린 브라우저 탭에 주기적으로 메시지를 보내 SW의 연결을 유지하고 수명을 연장할 수 있습니다.
전용 탭
확장 페이지는 전용 탭에 로드되어 "표시되는 배경 페이지" 역할을 할 수 있습니다. 이 접근 방식은 5분 종료 제한을 우회하지만 탭을 열어야 하므로 장치 리소스가 소모됩니다.
이러한 해결 방법은 SW의 수명을 연장할 수 있지만 유지만 활성화하는 것이 중요합니다. 중요한 작업을 수행할 때 살아있는 기능. 메모리 소비를 최소화하려면 나중에 비활성화하십시오. 또한 SW를 영구 저장 메커니즘에 저장하여 예상치 못한 충돌로부터 SW 상태를 보호하세요.
위 내용은 Chrome 확장 프로그램은 어떻게 지속적인 서비스 워커 기능을 달성할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!