Re: [w3c/manifest] Add offline_url option (#774)

Consider, the code to do this in an SW would be something like:

```JS
self.addEventListener("fetch", ev => {
  ev.respondWith(aCachedResponse(ev));
});

async function aCachedResponse(ev) {
  const response = await caches.match(ev.request);
  if (response) {
    return response;
  }
  // go to network instead
  try {
    const netResponse = await fetch(ev.request);
    if (netResponse.ok) {
      return netResponse;
    }
  } catch (err) {
    console.error(err);
  }
  // just return the index if all goes bad.
  return await caches.match("/"); // OR 404.html
}
```

The above has the following advantages over `offline_page`, in that: 

 1. it already works in all browsers that already support service workers.  
 1. it gives the developer absolute control over the whole experience - including being easily debuggable in devtools.
 1. it doesn't require any magic or violating/reinterpreting any HTTP cache semantics.
 1. it doesn't introduce anything new to the spec - so less things to worry about. 

I'd echo what both @reillyeon and @mgiuca have suggested - the motivation is right, but we already have a solution for this: service workers. Yeah, they are complicated and somewhat annoying, but they are what we have in the platform to do this today.  

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/manifest/issues/774#issuecomment-515852848

Received on Monday, 29 July 2019 05:45:23 UTC