Cache.add()

Метод add() интерфейса Cache принимает в качестве параметра URL, загружает его и добавляет полученный объект ответа в заданный кеш. Метод add() функционально эквивалентен соедующему коду:

fetch(url).then(function (response) {
  if (!response.ok) {
    throw new TypeError('bad response status');
  }
  return cache.put(url, response);
})

Для более сложных операций, вам нужно использовать Cache.put().

Замечание: add() перезапишет любую пару ключ/значение, сохраненную ранее в кеше, соответствующем запросу.

Синтаксис

cache.add(request).then(function() {
  //запрос был добавлен в кеш
});

Параметры

request
Запрос, который вы хотите добавить в кеш. Это может быть объект  Request, либо URL.

Возвращаемое значение

Promise, который разрешается с пустым значением void.

Исключения

Исключение Когда происходит
TypeError

Схема URL не http или https.

Статус ответа не из диапазона 200 (т.е., ответ не успешен). Это случается если запрос не выполняется успешно, а также, если запрос является cross-origin no-cors запросом (в таком случае, статус всегда 0).

Примеры

Этот блок кода ожидает старта события InstallEvent , а затем запускает  waitUntil для обработки процесса установки приложения. Этот процесс состоит из вызова  CacheStorage.open для создания нового кеша, и использования Cache.add для добавления ресурсов в этот кеш.

this.addEventListener('install', function(event) {
  event.waitUntil(
    caches.open('v1').then(function(cache) {
      return cache.add('/sw-test/index.html');
    })
  );
});

Спецификации

Спецификация Статус Комменатрий
Service Workers
Определение 'Cache' в этой спецификации.
Рабочий черновик Initial definition.

Совместимость с браузерами

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
add
Экспериментальная
Chrome Полная поддержка 44
Замечания
Полная поддержка 44
Замечания
Замечания Requires HTTPS from version 46.
Edge Полная поддержка 16Firefox Полная поддержка 39
Замечания
Полная поддержка 39
Замечания
Замечания Service workers (and Push) have been disabled in the Firefox 45 & 52 Extended Support Releases (ESR).
IE Нет поддержки НетOpera Полная поддержка 31
Замечания
Полная поддержка 31
Замечания
Замечания Requires HTTPS from version 33.
Safari Полная поддержка 11WebView Android Полная поддержка 44
Замечания
Полная поддержка 44
Замечания
Замечания Requires HTTPS from version 46.
Chrome Android Полная поддержка 44
Замечания
Полная поддержка 44
Замечания
Замечания Requires HTTPS from version 46.
Firefox Android Полная поддержка 39Opera Android Полная поддержка 32
Замечания
Полная поддержка 32
Замечания
Замечания Requires HTTPS from version 33.
Safari iOS Нет поддержки НетSamsung Internet Android Полная поддержка 4.0

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Экспериментальная. Ожидаемое поведение может измениться в будущем.
Экспериментальная. Ожидаемое поведение может измениться в будущем.
Смотрите замечания реализации.
Смотрите замечания реализации.

Смотрите также