DeferredRequestInit

Limited availability

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

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The DeferredRequestInit dictionary of the Fetch API represents the set of options that can be used to configure a deferred fetch request.

The DeferredRequestInit object is passed directly into the window.fetchLater() function call as the second argument.

Instance properties

This dictionary extends the RequestInit dictionary with the addition of the following properties:

activateAfter Optional

A DOMHighResTimeStamp indicating a timeout in milliseconds after which the fetch request should be sent. The fetch can be sent earlier on navigating away. The actual sending time is unknown, as the browser may wait for a longer or shorter time, for example, to optimize the batching of deferred fetches. If the activateAfter property is not provided, the deferred fetch waits until the end of the page visit (including entering the bfcache).

Exceptions

RangeError DOMException

Raised when a negative activateAfter is provided.

Examples

Defer a GET request until the page is destroyed or enters the bfcache

In this example, no DeferredRequestInit object is provided and no timeout is used:

js
fetchLater("/send_beacon");

Defer a POST request for around 1 minute

In this example we create a Request, and provide an activateAfter value to delay sending the request for 60,000 milliseconds (or one minute):

js
fetchLater("/send_beacon", {
  method: "POST",
  body: getBeaconData(),
  activateAfter: 60000, // 1 minute
});

Note: The actual sending time is unknown, as the browser may wait for a longer or shorter period of time, for example to optimize batching of deferred fetches.

Specifications

Specification
Fetch
# deferred-fetch

Browser compatibility

desktop mobile server
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
fetchLater
Experimental
Chrome – Full support
Chrome 135 (Release date: 2025-04-01)
footnote Full support
Edge – Full support
Edge 135 (Release date: 2025-04-04)
footnote Full support
Firefox – No support
Firefox
footnote
footnote See bug 1936180
Opera – Full support
Opera 120 (Release date: 2025-07-02)
footnote Full support
Safari – No support
Safari
footnote
footnote See bug 284347
Chrome Android – Full support
Chrome Android 135 (Release date: 2025-04-01)
footnote Full support
Firefox for Android – No support
Firefox for Android
footnote
footnote See bug 1936180
Opera Android – Full support
Opera Android 89 (Release date: 2025-04-29)
footnote Full support
Safari on iOS – No support
Safari on iOS
footnote
footnote See bug 284347
Samsung Internet – Full support
Samsung Internet 29 (Release date: 2025-10-25)
footnote Full support
WebView Android – Full support
WebView Android 135 (Release date: 2025-04-01)
footnote Full support
WebView on iOS – No support
WebView on iOS
footnote
footnote See bug 284347
Deno – No support
Deno
footnote No support

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.
See implementation notes.

See also