MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Cache.addAll()

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

Описание

Метод addAll() интерфейса Cache принимает массив URLS в кечестве параметра, получает данные по ним, и добавляет полученные объекты ответов в заданный кеш. Объекты запросов, созданные в ходе получения данных, становятся ключами для хранимых ответов. 

ЗамечаниеaddAll() перезапишет любые пары ключ/значение ранее записанные в кеш, соответствующие запросу, но выдаст ошибку, если операция put() перезапишет один из кешей, созданный за время выполнения одного и того же метода addAll().

Замечание: Первоначальная реализация Cache (как в Blink, так и в Gecko) разрешает промисы Cache.add, Cache.addAll, и Cache.put когда тело ответа полностью записано в хранилище. Более поздние версии спецификации говорят, что браузер может разрешить промис как только данные были записаны в базу данных, даже если тело ответа еще формируется.

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

Синтаксис

cache.addAll(requests[]).then(function() {
  //запросы были дабавлены в кеш
});

Параметры

requests
Массив объектов Request, которые вы хотите добавить в кеш.

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

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

Исключения

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

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

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

Примеры

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

this.addEventListener('install', function(event) {
  event.waitUntil(
    caches.open('v1').then(function(cache) {
      return cache.addAll([
        '/sw-test/',
        '/sw-test/index.html',
        '/sw-test/style.css',
        '/sw-test/app.js',
        '/sw-test/image-list.js',
        '/sw-test/star-wars-logo.jpg',
        '/sw-test/gallery/',
        '/sw-test/gallery/bountyHunters.jpg',
        '/sw-test/gallery/myLittleVader.jpg',
        '/sw-test/gallery/snowTroopers.jpg'
      ]);
    })
  );
});

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

Спецификация Статус Комментарий
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,