Programing

서비스 워커 JavaScript 업데이트 빈도 (24 시간마다?)

lottogame 2020. 11. 30. 07:39
반응형

서비스 워커 JavaScript 업데이트 빈도 (24 시간마다?)


MDN의이 문서에 따르면 :

그 후에는 약 24 시간마다 다운로드됩니다. 그것은 더 자주 다운로드 할 수 있지만, 너무 오래 성가신되는 것을 나쁜 스크립트를 방지하기 위해 모든 24 시간을 다운로드해야합니다.

Firefox와 Chrome도 마찬가지입니까? 또는 서비스 워커 자바 스크립트 업데이트는 사용자가 사이트를 탐색 할 때만 발생합니까?


참고 : Firefox 57Chrome 68 및 서비스 워커를 지원하는 Safari 및 Edge 버전부터는 기본 동작이 업데이트 된 서비스 워커 사양 을 고려하여 변경되었습니다 . 이러한 브라우저에서 HTTP 캐시 지시문은 서비스 워커 스크립트에서 업데이트를 확인할 때 기본적으로 무시됩니다. 아래 설명은 이전 버전의 Chrome 및 Firefox에 계속 적용됩니다.

서비스 워커의 범위에있는 새 페이지로 이동할 때마다 Chrome은 navigator.serviceWorker.register()호출 에 전달 된 자바 스크립트 리소스에 대한 표준 HTTP 요청을 만듭니다 . 이름이이라고 가정 해 봅시다 service-worker.js. 이 요청은 내비게이션과 함께 또는 서비스 워커가 예를 들어 push이벤트 를 통해 깨어 난 경우에만 이루어집니다 . 없는 24 시간마다, 또는 아무것도 그런 자동화 refetches 각 서비스 노동자 스크립트하는 백그라운드 프로세스.

이 HTTP 요청은 한 가지 예외를 제외 하고 표준 HTTP 캐시 지시문을 따릅니다 (다음 단락에서 다룹니다). 예를 들어, 서버가 캐시 된 응답을 1 시간 동안 사용해야 함을 나타내는 적절한 HTTP 응답 헤더를 설정 한 경우 다음 1 시간 내에 브라우저의 요청 service-worker.js이 브라우저의 캐시에 의해 이행됩니다. 우리가 있다는 것을 참고 하지 에 대해 이야기 캐시 스토리지 API 이 상황에서 관련이없는, 오히려 표준 브라우저의 HTTP 캐싱 .

표준 HTTP 캐싱 규칙의 한 가지 예외는 24 시간이 시작되는 곳 service-worker.js입니다. HTTP 캐시 항목 수명 이 24 시간 이상 이면 브라우저가 항상 네트워크로 이동한다는 것입니다. 따라서 기능적으로 max-age는 1 일, 1 주 또는 1 년 을 사용하는 데 차이가 없습니다. 모두 max-age1 일인 것처럼 처리됩니다 .

브라우저 공급 업체는 개발자가 1 년 동안 service-worker.js제공 되는 "깨진"또는 버그 실수로 배포하지 않도록 max-age하여 사용자에게 오랜 기간 동안 지속적이고 중단 된 웹 경험을 남길 수 있도록합니다. (사용자가 사이트 데이터를 지우거나 사이트를 다시로드하는 것을 알고 있다고 믿을 수는 없습니다.)

일부 개발자는 service-worker.js모든 HTTP 캐싱이 비활성화되도록 응답 헤더 를 명시 적으로 제공하는 것을 선호합니다 . 즉 service-worker.js, 모든 탐색에 대해 네트워크 요청 이 이루어집니다. 또 다른 접근 방식은 매우 짧은 시간 (예 : max-age1 분)을 사용하여 단일 사용자로부터 매우 많은 수의 빠른 탐색이있는 경우 어느 정도의 제한을 제공하는 것입니다. 요청을 최소화하고 싶고 service-worker.js업데이트하지 않을 것이라고 확신 하는 경우 max-age24 시간을 자유롭게 설정할 수 있지만 예기치 않게 재배포해야하는 기회에 더 짧은 시간을 사용하는 것이 좋습니다.

참고 URL : https://stackoverflow.com/questions/38843970/service-worker-javascript-update-frequency-every-24-hours

반응형