BackgroundFetchRegistration

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Интерфейс BackgroundFetchRegistration из Background Fetch API представляет собой отдельный фоновый запрос.

Экземпляр BackgroundFetchRegistration возвращает метод BackgroundFetchManager.fetch() или метод BackgroundFetchManager.get() и, следовательно, не имеет конструктора.

EventTarget BackgroundFetchRegistration

Свойства

Для удобства использования, следующие свойства, скопированные из экземпляра BackgroundFetchRegistration, доступны синхронно:

BackgroundFetchRegistration.idТолько для чтения

Строка, содержащая идентификатор фонового запроса.

BackgroundFetchRegistration.uploadTotalТолько для чтения

number содержащий общее количество байт для загрузки.

BackgroundFetchRegistration.uploadedТолько для чтения

number содержащий количество успешно отправленных байт, изначально 0.

BackgroundFetchRegistration.downloadTotalТолько для чтения

number содержащий общий размер загрузки в байтах. Это значение устанавливается при регистрации запроса, или 0.

BackgroundFetchRegistration.downloadedТолько для чтения

number содержащий количество скачанных байт, изначально 0.

BackgroundFetchRegistration.resultТолько для чтения

Изначально возвращает пустую строку, а по завершению запросо либо "success", либо "failure".

BackgroundFetchRegistration.failureReasonТолько для чтения

Возвращает одну из следующих строк:

""

Запрос не завершён, либо завершился успешно.

"aborted"

Операция была отменена пользователем, либо был вызван abort().

"bad-status"

Статус ответа не-ok (статус не входящий в диапазон 200-299).

"fetch-error"

Запрос завершился неудачей по какой-либо другой причине, например CORS, или отсутствие сети.

"quota-exceeded"

Во время операции была достигнута квота хранилища.

"download-total-exceeded"

Превышен downloadTotal. Его значение устанавливается при регистрации запроса.

BackgroundFetchRegistration.recordsAvailableТолько для чтения

boolean указывает, установлен ли флаг recordsAvailable.

Методы

BackgroundFetchRegistration.abort()

Прерывает фоновый запрос. Возвращает Promise, результатом обработки которого является true, если запрос был успешно прерван.

BackgroundFetchRegistration.match()

Возвращает один объект BackgroundFetchRecord, который является первым совпадением по аргументам.

BackgroundFetchRegistration.matchAll()

Возвращает Promise, результатом обработки которого является массив объектов BackgroundFetchRecord, содержащих запросы и ответы.

События

Слушайте эти события используя addEventListener() или назначая слушатель события свойству oneventname.

progress

Срабатывает при изменении любого из следующих свойств: uploaded, downloaded, result or failureReason.

Примеры

Следующий пример создаёт BackGroundFetchRegistration с идентификатором "my-fetch" и присваивает его переменной bgFetch.

js
navigator.serviceWorker.ready.then(async (swReg) => {
  const bgFetch = await swReg.backgroundFetch.fetch(
    "my-fetch",
    ["/ep-5.mp3", "ep-5-artwork.jpg"],
    {
      title: "Episode 5: Interesting things.",
      icons: [
        {
          sizes: "300x300",
          src: "/ep-5-icon.png",
          type: "image/png",
        },
      ],
      downloadTotal: 60 * 1024 * 1024,
    },
  );
});

Вывод id в консоль возвращает "my-fetch".

js
console.log(bgFetch.id); // "my-fetch"

Метод match() можно использовать для поиска конкретного BackgroundFetchRecord из тех, что были зарегистрированы.

js
bgFetch.match("/ep-5.mp3").then(async (record) => {
  if (!record) {
    console.log("No record found");
    return;
  }

  console.log(`Запрос`, record.request);
  const response = await record.responseReady;
  console.log(`И ответ`, response);
});

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

Specification
Background Fetch
# background-fetch-registration

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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
BackgroundFetchRegistration
Experimental
abort
Experimental
downloadTotal
Experimental
downloaded
Experimental
failureReason
Experimental
id
Experimental
match
Experimental
matchAll
Experimental
progress event
Experimental
recordsAvailable
Experimental
result
Experimental
uploadTotal
Experimental
uploaded
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.