The mechanism we will use for caching is the Web Cache API.
Note that the Mozilla Developer Network defines the Cache API as experimental technology, and as of August 2017, it only has the support of Chrome, Firefox, and the latest version of Opera.
The API specification has a few quirks we need to talk about. First, you can store multiple cache objects in the cache. In this way, we're able to store multiple versions of our cache, named whatever string we like.
That said, the browser has a limit of how much data it can store from any one site. If the cache gets too full, it may simply delete all data from that origin, so our best bet is to store the bare minimum.
However, there's an additional difficulty. Items in the cache never expire, unless explicitly deleted, so if we keep trying to stuff new cache objects into our cache, eventually it'll get...