BackgroundFetchManager: fetch() method
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental:This is anexperimental technology
Check theBrowser compatibility table carefully before using this in production.
Note: This feature is available inWeb Workers.
Thefetch() method of theBackgroundFetchManager interface initiates a background fetch operation, given one or more URLs orRequest objects.
In this article
Syntax
fetch(id, requests)fetch(id, requests, options)Parameters
idA developer-defined identifier that can be passed to the other methods to retrieve the
BackgroundFetchRegistrationfor this operation.requestsA
RequestInfoobject or an array ofRequestInfoobjects.Each
RequestInfoobject is aRequestobject or a string that will be given as theinputargument to theRequest()constructor.optionsOptionalAn object which will be used to customize the fetch progress dialog that the browser shows to the user. It has the following properties:
titleOptionalA string that will be used as the title for the progress dialog.
iconsOptionalAn array of objects, each representing an icon that the browser may use for the progress dialog. Each object has the following properties:
srcA string representing a URL to the icon file.
sizesOptionalA string representing the sizes of the image, expressed using the same syntax as the
sizesattribute of the<link>element.typeOptionalA string representing theMIME type of the icon.
labelOptionalA string representing the accessible name of the icon.
downloadTotalOptionalA number representing the estimated total download size, in bytes, for the fetch operation. This is used to show the user how big the download is and to show the user download progress.
As soon as the total download size exceeds
downloadTotal, then the fetch is aborted.
Return value
APromise that resolves with aBackgroundFetchRegistration object.
Exceptions
TypeErrorRaised if no request is provided, if the mode of a request is
no-cors, if no service worker is present, a request already exists with the requestedid, or the request fails.AbortErrorDOMExceptionIndicates that the fetch was aborted.
NotAllowedErrorDOMExceptionIndicates that user permission has not been granted to make background fetches.
QuotaExceededErrorThrown if storing requests failed due to exceed the browser'sstorage quota.
Examples
The following example shows how to usefetch() to initiate a background fetch operation. With an activeservice worker, use theServiceWorkerRegistration.backgroundFetch property to access theBackgroundFetchManager object and call itsfetch()method.
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, }, );});Specifications
| Specification |
|---|
| Background Fetch> # background-fetch-manager-fetch> |