Cache.addAll()
==============

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

Описание
--------

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

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

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

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

Синтаксис
---------


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

### Параметры

requests

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

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

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

### Исключения

| **Исключение** | **Когда происходит** |
| --- | --- |
| `TypeError` | Схема URL не `http` или `https`.Статус ответа не из диапазона 200 (т.е., ответ не успешен). Это случается если запрос не выполняется успешно, а также, если запрос является *cross-origin no-cors* запросом (в таком случае, статус всегда 0). |

Примеры
-------

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


```js
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",
      ]);
    }),
  );
});
```

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

| Specification |
| --- |
| Service Workers # cache-addAll |

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

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* Использование сервис воркеров (en-US)
* `Cache`
* `WorkerGlobalScope.caches` (en-US)