MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

Метод 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 (как в Blink, так и в Gecko) разрешает промисы Cache.add, Cache.addAll, и Cache.put когда тело ответа полностью записано в хранилище. БОлее поздние версии спецификаций говорят, что браузер может разрешить промис как только данные сохранены в базе данных, даже если тело ответа все еще формируется.

Замечание: Начиная с Chrome 46, Cache API будут хранить лишь запросы из безопасных источников, то есть только запросы, получаемые по HTTPS.

Синтаксис

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.

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

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Базовая поддержка 46.0 (Да)[1] Нет 24 Нет
Требует HTTPS 46.0 (Да)[1] ? ? ?
TypeError в случае неуспешного запроса (Да) 47.0 (47.0)[1] (Да) (Да) (Да)
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Базовая поддержка Нет Нет (Да) ? Нет ? Нет 46.0
Требует HTTPS Нет Нет (Да) ? ? ? ? 46.0
TypeError в случае неуспешного запроса (Да) (Да) (Да) (Да) (Да) (Да) (Да) (Да)

[1] Сервис воркеры (и Push) были отключены в Firefox 45 Extended Support Release (ESR.)

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

Метки документа и участники

 Внесли вклад в эту страницу: utking
 Обновлялась последний раз: utking,