BackgroundFetchManager: метод fetch()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из самых широко используемых браузеров.
Экспериментально: Это экспериментальная технология
Перед использованием в производстве тщательно проверьте таблицу совместимости с браузерами.
Примечание: Эта функция доступна в Web Workers.
Метод fetch() интерфейса BackgroundFetchManager инициирует операцию фонового получения данных, используя один или несколько URL-адресов или объекты Request.
Синтаксис
fetch(id, requests) fetch(id, requests, options)
Параметры
id-
Идентификатор, определяемый разработчиком, который может быть передан другим методам для получения
BackgroundFetchRegistrationдля этой операции. requests-
Объект
RequestInfoили массив объектовRequestInfo.Каждый объект
RequestInfoявляется объектомRequestили строкой, которая будет передана в качестве аргументаinputконструкторуRequest(). optionsНеобязательно-
Объект, используемый для настройки диалогового окна прогресса загрузки, отображаемого браузером пользователю. Он имеет следующие свойства:
titleНеобязательно-
Строка, которая будет использоваться в качестве заголовка диалогового окна прогресса.
iconsНеобязательно-
Массив объектов, каждый из которых представляет собой значок, который браузер может использовать для диалогового окна прогресса. Каждый объект имеет следующие свойства:
src-
Строка, представляющая URL-адрес файла значка.
sizesНеобязательно-
Строка, представляющая размеры изображения, выраженная в том же формате, что и атрибут
sizesэлемента<link>. typeНеобязательно-
Строка, представляющая тип MIME значка.
labelНеобязательно-
Строка, представляющая доступное имя значка.
downloadTotalНеобязательно-
Число, представляющее предполагаемый общий размер загрузки в байтах для операции получения данных. Это используется для отображения пользователю размера загрузки и прогресса загрузки.
Как только общий размер загрузки превысит
downloadTotal, загрузка прерывается.
Возвращаемое значение
Объект Promise, который разрешается объектом BackgroundFetchRegistration.
Исключения
TypeError-
Возникает, если не предоставлен ни один запрос, если режим запроса
no-cors, если отсутствует служба-агент, если запрос уже существует с запрошеннымid, или запрос завершается сбоем. -
AbortErrorDOMException -
Указывает, что загрузка была прервана.
-
NotAllowedErrorDOMException -
Указывает, что разрешение пользователя не предоставлено для выполнения фоновых загрузок.
-
QuotaExceededErrorDOMException -
Выбрасывается, если хранение запросов завершилось неудачей из-за превышения квоты хранилища браузера storage quota.
Примеры
В следующем примере показано, как использовать fetch() для инициирования операции фонового получения данных. При активном service worker используйте свойство ServiceWorkerRegistration.backgroundFetch для доступа к объекту BackgroundFetchManager и вызовите его метод fetch().
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",
label: "Downloading a show",
},
],
downloadTotal: 60 * 1024 * 1024,
},
);
});
Спецификации
| Спецификация |
|---|
| Фоновая загрузка # background-fetch-manager-fetch |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
fetch |
74 | 79 | Нет | 62 | Нет | 74 | Нет | 53 | Нет | 11.0 | Нет |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/BackgroundFetchManager/fetch