참고소스 수정본
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
<script>
|
||||
window.registrationPromise = navigator.serviceWorker.register('sw.js');
|
||||
window.activationPromise = new Promise(resolve => navigator.serviceWorker.oncontrollerchange = resolve);
|
||||
|
||||
async function fetchDummy(name) {
|
||||
const response = await fetch(name);
|
||||
if (!response.ok)
|
||||
return 'FAILURE: ' + response.statusText;
|
||||
const text = await response.text();
|
||||
return text;
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,19 @@
|
||||
self.addEventListener('fetch', event => {
|
||||
if (event.request.url.endsWith('.html') || event.request.url.includes('passthrough')) {
|
||||
event.respondWith(fetch(event.request));
|
||||
return;
|
||||
}
|
||||
if (event.request.url.includes('error')) {
|
||||
event.respondWith(Promise.reject(new Error('uh oh')));
|
||||
return;
|
||||
}
|
||||
const slash = event.request.url.lastIndexOf('/');
|
||||
const name = event.request.url.substring(slash + 1);
|
||||
const blob = new Blob(["responseFromServiceWorker:" + name], {type : 'text/css'});
|
||||
const response = new Response(blob, { "status" : 200 , "statusText" : "OK" });
|
||||
event.respondWith(response);
|
||||
});
|
||||
|
||||
self.addEventListener('activate', event => {
|
||||
event.waitUntil(clients.claim());
|
||||
});
|
||||
Reference in New Issue
Block a user