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()
и, следовательно, не имеет конструктора.
Свойства
Для удобства использования, следующие свойства, скопированные из экземпляра 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
orfailureReason
.
Примеры
Следующий пример создаёт BackGroundFetchRegistration
с идентификатором "my-fetch"
и присваивает его переменной bgFetch
.
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"
.
console.log(bgFetch.id); // "my-fetch"
Метод match()
можно использовать для поиска конкретного BackgroundFetchRecord
из тех, что были зарегистрированы.
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 |
Совместимость с браузерами
BCD tables only load in the browser