This page was translated from English by the community. Learn more and join the MDN Web Docs community.
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,resultorfailureReason.
Примеры
Следующий пример создаёт 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> |
Совместимость с браузерами
Loading...