Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

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

Метод match() интерфейса CacheStorage (доступный через глобальное свойство caches) проверяет  является ли данный Request или строка url ключом для какого-либо хранимого Response. Метод возвращает Promise если Response найден, или undefined если нет ни одного совпадения.

Объекты Cache проверяются в порядке создания.

Note: caches.match() это метод для удобства в работе. Такая функциональность достигается вызовом cache.match() для каждого объекта cache (в порядке полученом запросом caches.keys()) пока Response не будет найден.

Синтаксис

caches.match(request, options).then(function(response) {
  // Какие-либо действия с response
});

Параметры

request
Request для поиска.  Может быть объектом  Request или строкой URL.
options Необязательный
Объект, свойства которого определяют, как проверяется совпадение в операции сопоставления. Доступны следующие варианты:
  • ignoreSearchBoolean свойство. Определяет, следует ли игнорировать параметры запроса в строке url или нет.  Например, если установлено true, параметры ?value=bar запроса http://foo.com/?value=bar будут проигнорированы во время сопоставления. Значением по умолчанию является false.
  • ignoreMethod: Boolean свойство. Когда установлено true, предотвращает проверку http метода запроса Request  (обычно разрешены  только GET  и HEAD.) По умолчанию установлено false.
  • ignoreVary: Boolean свойство, определяющее, следует ли выполнять проверку заголовка VARY. Если установлено true, совпадения будут найдены, независимо от того, имеет ли Response заголовок VARY или нет. По умолчанию установлено false.
  • cacheName: Строка DOMString - имя кэша для поиска.

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

Метод возвращает Promise который разрешается совпавшим Response. Если ни одного совпадени не было найдено, promise разрешается с undefined.

Примеры

Это пример  из MDN sw-test example (см. sw-test running live). В данном примере, мы слушаем событие FetchEvent. Мы строим проверку ответа следующим образом:

  1. Проверяем, совпадения для запроса в CacheStorage используя CacheStorage.match(). Если совпадение найдено, возвращаем response.
  2. Если нет, открываем v1 объект кэша, используя метод open(), добавляем изначальный запрос в кэш используя Cache.put() и возвращаем клонированный объект запроса, используя return response.clone(). Это необходимо, потому что метод put() сохраняет в кэш тело запроса, изменяя, таким образом, изначальный запрос.
  3. Если произошла какая-либо ошибка (например, из-за проблем с сетью), возвращаем резервный ответ.
caches.match(event.request).then(function(response) {
  return response || fetch(event.request).then(function(r) {
    caches.open('v1').then(function(cache) {
      cache.put(event.request, r);
    });
    return r.clone();
  });
}).catch(function() {
  return caches.match('/sw-test/gallery/myLittleVader.jpg');
});

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

Specification Status Comment
Service Workers
Определение 'CacheStorage: match' в этой спецификации.
Рабочий черновик Initial definition.

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

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidEdge MobileFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
match
Экспериментальная
Chrome Полная поддержка 54
Полная поддержка 54
Частичная поддержка 40
Замечания
Замечания The options parameter only supports ignoreSearch, and cacheName.
Edge Полная поддержка 16Firefox Полная поддержка 44
Замечания
Полная поддержка 44
Замечания
Замечания Service workers (and Push) have been disabled in the Firefox 45 & 52 Extended Support Releases (ESR.)
IE Нет поддержки НетOpera Полная поддержка 41
Полная поддержка 41
Частичная поддержка 27
Замечания
Замечания The options parameter only supports ignoreSearch, and cacheName.
Safari Полная поддержка 11.1WebView Android Полная поддержка 54
Полная поддержка 54
Частичная поддержка 40
Замечания
Замечания The options parameter only supports ignoreSearch, and cacheName.
Chrome Android Полная поддержка 54
Полная поддержка 54
Частичная поддержка 40
Замечания
Замечания The options parameter only supports ignoreSearch, and cacheName.
Edge Mobile Полная поддержка ДаFirefox Android Полная поддержка 44Opera Android Полная поддержка 41
Полная поддержка 41
Частичная поддержка 27
Замечания
Замечания The options parameter only supports ignoreSearch, and cacheName.
Safari iOS Полная поддержка ДаSamsung Internet Android ?

Легенда

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

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

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

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