XMLHttpRequestEventTarget: timeout event

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Note: This feature is available in Web Workers, except for Service Workers.

The timeout event is fired when progression is terminated due to preset time expiring.

Syntax

Use the event name in methods like addEventListener(), or set an event handler property.

js
addEventListener("timeout", (event) => { })

ontimeout = (event) => { }

Event type

A ProgressEvent. Inherits from Event.

Event ProgressEvent

Examples

Usage with XMLHttpRequest

js
const client = new XMLHttpRequest();
client.open("GET", "http://www.example.org/example.txt");
client.ontimeout = () => {
  console.error("Timeout!!");
};

client.send();

You could also set up the event handler using the addEventListener() method:

js
client.addEventListener("timeout", () => {
  console.error("Timeout!!");
});

Usage with XMLHttpRequestUpload

You can use the timeout event to detect an upload that stopped because it was too slow. For a complete code example that uploads a file and displays a progress bar, see the main XMLHttpRequestUpload page.

The timeout is set on the XMLHttpRequest object using the XMLHttpRequest.timeout property.

js
// In case of a timeout we hide the progress bar
// Note that this event can be listened to on the xhr object too
function errorAction(event) {
  progressBar.classList.remove("visible");
  log.textContent = `Upload failed: ${event.type}`;
}
xhr.upload.addEventListener("timeout", errorAction);

Specifications

Specification
XMLHttpRequest
# event-xhr-timeout
XMLHttpRequest
# handler-xhr-ontimeout

Browser compatibility

api.XMLHttpRequest.timeout_event

api.XMLHttpRequestUpload.timeout_event

See also