With all of this work we've been doing outside of the `window`, you might think that [`Cache` instances](https://developer.mozilla.org/docs/Web/API/Cache) can only be accessed in the service worker scope. The fact is that you can access `Cache` instances in *both* the service worker scope *and* in your web app's traditional code, running in the `window`. This makes it easier for the user to directly interact with a service worker cache, or update the user interface based on cache state.

One potential use case is to offer a "save for offline" feature for pages the user may want to read later, but know they may be offline at that time.

> [!CAUTION]
> **Caution:** It's been said before in this documentation, but it bears repeating in this context: [be mindful of storage quotas](https://developer.chrome.com/docs/workbox/caching-resources-during-runtime#setting_an_expiry_for_cache_entries). When users have direct control over what's put in a cache, you may want to enforce a maximum age or number of entries in your service worker cache(s).

<br />

This isn't the only use case for working with `Cache` instances in the `window`. For example, you could predictively prefetch and cache assets you know the user will need to perform a specific action. This would reduce or avoid the latency of downloading those assets on demand.

There are other potentially beneficial use cases---and, since you can interact with `Cache` instances in the absence of a service worker, not all of them may require one to be installed.