私は Service Worker の初心者です。pwa をサポートするための反応プロジェクト用のカスタム sw.js を作成しています。バックエンドにgraphql実装があります。Graphql 応答の応答をキャッシュしましたが、ユーザーがオフラインになるとサービスを提供できません。これは、カスタム sw.js スニペット コードです。
if(event.request.url=== 'https://my.custombackend.com/graphql'){
console.log('graphql request incoming!');
return event.respondWith(
caches.match('/graphql').then(graphqlRes=>{ //THIS LINE IS CAUSING ERROR AS sw.js is unable to retrieve such match . But in image you can see I have already cached the graphql response.
if(graphqlRes){
console.log(graphqlRes)
console.log('graphql request being served from cache');
return graphqlRes;
}
else return fetch(event.request).then(cacheToBe=>{
return caches.open(dynamicCache).then(newEntry=>{
console.log('graphql request served! Now caching...');
newEntry.put(event.request.url, cacheToBe.clone());
return cacheToBe;
})
})
}))
}
予想される動作: sw.js は、必要な「/graphql」キャッシュ データをフェッチする必要があります。実際の動作: それを認識せず、offline.html にフォールバックします。