2017-12-30 40 views
0

오프라인에서도 작동해야하는 웹 앱이 있습니다. javascript 서비스 작업자가 필요한 파일을 캐시에 저장하는 데 사용합니다. 연결이되면 네트워크에서 모든 리소스를로드합니다. 연결이 없으면 리소스가 캐시에서로드됩니다. 정상적으로 작동합니다.Javascript Service Worker가 네트워크 시간 초과 후 캐시를 사용합니다.

이제는 장치에 인터넷 연결이 있지만 서버가 다운 된 경우 문제가 발생합니다. 그런 다음 인터넷에 연결되어 있기 때문에 캐시로 되돌아 가지 않습니다. 다음 30 초 말할 수있는 응용 프로그램이 콘텐츠를 질수

self.addEventListener('fetch', function(event) { 
    event.respondWith(
     fetch(event.request).catch(function() { 
      return caches.match(event.request); 
     }) 
    ); 
}); 

내 생각은, 시간 제한의 종류를 구현하는 것입니다 : 여기

는 서비스 worker.js에서 가져 이벤트에 대한 내 코드입니다 항상 캐시를 사용하십시오. 누구든지 이것을 구현하는 방법을 알고 있습니까? 약속에 어울리지 않는데 ...

답변

1

내 생각에 문제는 캐시의 인스턴스를 열고 해당 캐시와 요청을 일치시키지 않는다는 것입니다. 캐시 API를 잘못 사용하고 있습니다.

당신은 같은 필요합니다.

반환 caches.open ('내 캐시 이름을')를 ...

은 내가보기 엔 당신이 읽어하는 것이 좋습니다 : https://serviceworke.rs/strategy-network-or-cache.html

같은 사이트에서 다른 SW 전략이 많이 있습니다!

+0

링크의 thx! 이것은 유망한 것으로 들리므로 내년에 테스트 해 보겠습니다.) – Alphacoder