Re: [slightlyoff/ServiceWorker] Eliminating SW startup latency for common case (#920)

With the routing proposal...

```js
self.addEventListener('install', event => {
  event.waitUntil(
    // populate caches
  );
});

self.addEventListener('fetch', event => {
  event.respondWith(
    caches.match(event.request).then(r => r || fetch(event.request))
  );
});
```

...could be replaced with....

```js
self.addEventListener('install', event => {
  event.waitUntil(
    // populate caches
  );

  event.declareRoute("/", new FallbackSources(
    new CachesSource(),
    new FetchSource()
  ));
});
```

...and the SW wouldn't need to boot up for any fetch events.

My blog currently composes a streamed response. If the cost of service worker bootup was greater than its benefit, I could do:

```js
self.addEventListener('install', event => {
  event.waitUntil(
    // populate caches
  );

  event.declareRoute({mode: "navigation"}, new AnySource(
    new FetchEventSource(),
    new FetchSource()
  ));
});
```

...allowing the browser to race the network and the fetch event for navigations.

---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/slightlyoff/ServiceWorker/issues/920#issuecomment-229390344

Received on Wednesday, 29 June 2016 15:21:11 UTC