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.
Syntax
cache.add(request).then(function() {
// request has been added to the cache
});
Parameters
- request
- The request you want to add to the cache. This can be a
Requestobject or a URL.
Return value
A Promise that resolves with undefined.
Exceptions
| 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.) |
Examples
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');
})
);
});
Specifications
| Specification | Status | Comment |
|---|---|---|
| Service Workers The definition of 'Cache: add' in that specification. |
Working Draft | Initial definition. |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
add | Chrome
Full support
44
| Edge Full support 16 | Firefox
Full support
39
| IE No support No | Opera
Full support
31
| Safari Full support 11 | WebView Android
Full support
44
| Chrome Android
Full support
44
| Firefox Android Full support 39 | Opera Android
Full support
32
| Safari iOS Full support 11 | Samsung Internet Android
Full support
4.0
|
Legend
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.
- See implementation notes.
- See implementation notes.
