Próbowałem przechwycić linka metodami z js np:
window.location.href
document.URL
ale nie szło mi to coś.
Miałem problem z tym że kolejne sprawdzane pliki przez js jakby nadpisywały mi te zmienne i i tak wychodziło tak że danego pliku w cache nie ma.
Tutaj np.
https://googlechrome.github.io/samples/serv...m-offline-page/Sprawdzam czy jest sieć jesli nie ma, daje userowi stronę offline.html
Za to tu podaję jakie pliki mają być wgrane do cache:
self.addEventListener('install', event => {
event.waitUntil(
caches.open('v1').then(cache => {
return cache.addAll([
'/',
'/helloword.php',
'css.css',
]);
}, error => {
console.log(`Installation failed with error: ${error}`);
})
);
});
self.addEventListener('activate', event => {
let cacheKeepList = ['v1'];
event.waitUntil(
caches.keys().then( keyList => {
return Promise
.all
(keyList
.map
(function(key) { if (cacheKeepList
.indexOf
(key) === -1
) { return caches
.delete
(key); }
}));
})
);
});
self.addEventListener('fetch', event => {
if (event.request.method != 'GET') return;
event.respondWith(async function() {
const cache = await caches.open('v1');
const cachedResponse = await cache.match(event.request);
if (cachedResponse) {
event.waitUntil(cache.add(event.request));
return cachedResponse;
}
return fetch(event.request);
}());
});
Jak to połączyć?
Jak napisać warunek który pobierze mi adres strony na której jestem sprawdzi w cache v1 czy adres występuje a jak nie zwróci jak w pierwszym przypadku offline.html?
Przeszukałem cały internet w poszukiwaniu takiego rozwiązania czy to w ogóle jest realne do wykonania czy muszę wybrać między tymi metodami?