This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The add()
method of the Cache
interface takes a URL, retrieves it, and adds the resulting response object to the given cache. The add()
method is functionally equivalent to the following:
fetch(url).then(function(response) { if (!response.ok) { throw new TypeError('bad response status'); } return cache.put(url, response); })
For more complex operations, you'll need to use Cache.put()
directly.
Note: add()
will overwrite any key/value pair previously stored in the cache that matches the request.
cache.add(request).then(function() { // request has been added to the cache });
Request
object or a URL.A Promise
that resolves with void.
Exception | Happens when |
---|---|
TypeError | The URL scheme is not The Response status is not in the 200 range (i.e., not a successful response.) This occurs if the request does not return successfully, but also if the request is a cross-origin no-cors request (in which case the reported status is always 0.) |
This code block waits for an InstallEvent
to fire, then calls waitUntil()
to handle the install process for the app. This consists of calling CacheStorage.open
to create a new cache, then using Cache.add
to add an asset to it.
this.addEventListener('install', function(event) { event.waitUntil( caches.open('v1').then(function(cache) { return cache.add('/sw-test/index.html'); }) ); });
Specification | Status | Comment |
---|---|---|
Service Workers The definition of 'Cache: add' in that specification. | Working Draft | Initial definition. |
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | 44
|
16 | 39
|
No | 31
|
No |
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | 44
|
44
|
No | 39 | 31
|
No | 4.0 |
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Cache/add