私はHTML、CSS、JSの基本的な 'シェル'を持つアプリを持っています。ページの主な内容は、複数のajax呼び出しを介して、私のアプリケーションが実行されている別のURLにあるAPIにロードされます。私は、アプリケーションのメイン 'シェル'をキャッシュするためのサービスワーカーを設定しました。要求されたときにキャッシュされたバージョンで応答します。私が抱えている問題は、私のajax呼び出しの応答もキャッシュされていることです。私は、サービスワーカーのfetch
イベントにコードを追加する必要があると確信していますが、キャッシュを調べるのではなく、常にネットワークから取得するようにしています。私はAPIへの要求を無視することができるかどうかはわかりませんサービスワーカーでのajaxリクエストの無視
self.addEventListener('fetch', function (event) {
// ignore anything other than GET requests
var request = event.request;
if (request.method !== 'GET') {
event.respondWith(fetch(request));
return;
}
// handle other requests
event.respondWith(
caches.open(CACHE_NAME).then(function (cache) {
return cache.match(event.request).then(function (response) {
return response || fetch(event.request).then(function (response) {
cache.put(event.request, response.clone());
return response;
});
});
})
);
});
:
は、ここに私のfetch
イベントです。
if (request.url.indexOf(myAPIUrl !== -1) {
event.respondWith(fetch(request));
return;
}
が、クローム開発ツールでネットワーク]タブによると、これらの応答のすべてが、まだサービスワーカーから来ている:私はこれをやってみました。
応答がサービスワーカーから来たことを示す理由は何ですか?また、[string.includes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes)を使用することもできます。 –