v149 · Performance · Service Workers
Cache Miss Tracker
The key insight of workerFinalRouterSourceList: when a rule nominates cache but the resource isn't there, the browser falls back to network. The matched source list says ['cache'] but the final source list says ['network']. This simulation shows that divergence across a realistic batch of requests.
What the two fields tell you:
workerMatchedRouterSourceList = what the matched rule asked for.
workerFinalRouterSourceList = what actually served the response.
They differ on cache misses, race outcomes, and handler fallbacks.
Routing rules in effect
Rule 1 — cache
requestDestination: image
Serve from cache; fallback to network on miss
Serve from cache; fallback to network on miss
Rule 2 — race
requestDestination: script
Race network vs fetch-event; first wins
Race network vs fetch-event; first wins
Rule 3 — network
urlPattern: /api/*
Always network — matched = final
Always network — matched = final
Rule 4 — fetch-event
requestDestination: document
Always goes to SW handler
Always goes to SW handler
—requests
—matched = final
—matched ≠ final
—cache misses
| # | URL | Rule | workerMatchedRouterSourceList | workerFinalRouterSourceList | Δ |
|---|---|---|---|---|---|
| Click "Run simulation" to populate… | |||||
see also
- Rule Builder — build addRoutes() rules and preview timing output
- Router Timing Inspector — live PerformanceObserver readings
- Performance Dashboard — RUM-style batch dashboard