ServiceWorkerGlobalScope: fetch event
The fetch event is fired when the fetch()
method is called.
This event is not cancelable and does not bubble.
Syntax
Use the event name in methods like addEventListener()
, or set an event handler property.
addEventListener('fetch', event => { });
onfetch = event => { };
Event type
A generic Event
.
Syntax
serviceWorkerGlobalScope.onfetch = function(fetchEvent) { /* ... */ };
Example
This code snippet is from the service
worker prefetch sample (see prefetch
example live.) The onfetch
event handler
listens for the fetch
event. When fired, the code returns a promise that
resolves to the first matching request in the Cache
object. If no match
is found, the code fetches a response from the network.
The code also handles exceptions thrown from the
fetch()
operation. Note that an HTTP
error response (e.g., 404) will not trigger an exception. It will return a normal
response object that has the appropriate error code set.
self.addEventListener('fetch', function(event) {
console.log('Handling fetch event for', event.request.url);
event.respondWith(
caches.match(event.request).then(function(response) {
if (response) {
console.log('Found response in cache:', response);
return response;
}
console.log('No response found in cache. About to fetch from network...');
return fetch(event.request).then(function(response) {
console.log('Response from network is:', response);
return response;
}).catch(function(error) {
console.error('Fetching failed:', error);
throw error;
});
})
);
});
Specifications
No specification found
No specification data found for api.ServiceWorkerGlobalScope.fetch_event
.
Check for problems with this page or contribute a missing spec_url
to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.
Browser compatibility
No compatibility data found for api.ServiceWorkerGlobalScope.fetch_event
.
Check for problems with this page or contribute missing data to mdn/browser-compat-data.