Web/API/Cache/add

From Get docs
< Web/API‎ | Cache

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 http or https.

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

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet

add

Experimental'

Chrome Full support 44

Notes'

Full support 44

Notes'

Notes' Requires HTTPS from version 46.

Edge

Full support 16

Firefox Full support 39

Notes'

Full support 39

Notes'

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

Notes'

Full support 31

Notes'

Notes' Requires HTTPS from version 33.

Safari

Full support 11

WebView Android Full support 44

Notes'

Full support 44

Notes'

Notes' Requires HTTPS from version 46.

Chrome Android Full support 44

Notes'

Full support 44

Notes'

Notes' Requires HTTPS from version 46.

Firefox Android

Full support 39

Opera Android Full support 32

Notes'

Full support 32

Notes'

Notes' Requires HTTPS from version 33.

Safari iOS

Full support 11

Samsung Internet Android Full support 4.0

Notes'

Full support 4.0

Notes'

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