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
Request
object 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 WorkersThe definition of 'Cache: add' in that specification. | Working Draft | Initial definition. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Chrome Full support 44 Full support 44 Notes' Requires HTTPS from version 46. |
Edge
Full support 16 |
Firefox Full support 39 Full support 39 Notes' Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API. |
IE
No support No |
Opera Full support 31 Full support 31 Notes' Requires HTTPS from version 33. |
Safari
Full support 11 |
WebView Android Full support 44 Full support 44 Notes' Requires HTTPS from version 46. |
Chrome Android Full support 44 Full support 44 Notes' Requires HTTPS from version 46. |
Firefox Android
Full support 39 |
Opera Android Full support 32 Full support 32 Notes' Requires HTTPS from version 33. |
Safari iOS
Full support 11 |
Samsung Internet Android Full support 4.0 Full support 4.0 Notes' Requires HTTPS from Samsung Internet 5.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.
See also
Cache.add() by Mozilla Contributors is licensed under CC-BY-SA 2.5.