Service Workers & Progressive Web Apps
How should offline analytics be handled in a PWA?
self.addEventListener('fetch', event => {
if (event.request.url.includes('/analytics')) {
event.respondWith(
fetch(event.request.clone()).catch(() => {
return enqueueAnalytics(event.request.clone());
})
);
}
});
self.addEventListener('sync', event => {
if (event.tag === 'sync-analytics') {
event.waitUntil(
sendQueuedAnalytics()
);
}
});