ProgressEvent

The ProgressEvent interface represents events measuring progress of an underlying process, like an HTTP request (for an XMLHttpRequest, or the loading of the underlying resource of an <img>, <audio>, <video>, <style> or <link>).

Constructor

ProgressEvent()
Creates a ProgressEvent event with the given parameters.

Properties

Also inherits properties from its parent Event.

ProgressEvent.lengthComputable Read only
Is a Boolean flag indicating if the total work to be done, and the amount of work already done, by the underlying process is calculable. In other words, it tells if the progress is measurable or not.
ProgressEvent.loaded Read only
Is an unsigned long long representing the amount of work already performed by the underlying process. The ratio of work done can be calculated with the property and ProgressEvent.total. When downloading a resource using HTTP, this only represent the part of the content itself, not headers and other overhead.
ProgressEvent.total Read only
Is an unsigned long long representing the total amount of work that the underlying process is in the progress of performing. When downloading a resource using HTTP, this only represent the content itself, not headers and other overhead.

Methods

Also inherits methods from its parent Event.

ProgressEvent.initProgressEvent()
Initializes a ProgressEvent created using the deprecated Document.createEvent("ProgressEvent") method.

Examples

The following example adds a ProgressEvent to a new XMLHTTPRequest and uses it to display the status of the request.

var progressBar = document.getElementById("p"),
    client = new XMLHttpRequest()
client.open("GET", "magical-unicorns")
client.onprogress = function(pe) {
  if(pe.lengthComputable) {
    progressBar.max = pe.total
    progressBar.value = pe.loaded
  }
}
client.onloadend = function(pe) {
  progressBar.value = pe.loaded
}
client.send()

Specifications

Specification Status Comment
XMLHttpRequest
The definition of 'ProgressEvent' in that specification.
Living Standard

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
ProgressEventChrome Full support 1Edge Full support 12Firefox Full support 3.5IE Full support 10Opera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
ProgressEvent() constructorChrome Full support YesEdge Full support ≤79Firefox Full support 22IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 22Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
initProgressEvent
DeprecatedNon-standard
Chrome No support 1 — 17Edge No support 12 — 79Firefox No support 3.5 — 22IE Full support 10Opera No support ? — 15Safari No support ? — ?WebView Android No support NoChrome Android No support ? — ?Firefox Android No support 4 — 22Opera Android No support ? — 14Safari iOS No support ? — ?Samsung Internet Android No support No
lengthComputableChrome Full support 50Edge Full support 12Firefox Full support 3.5IE Full support YesOpera Full support 37Safari Full support 3.1WebView Android Full support 50Chrome Android Full support 50Firefox Android Full support 4Opera Android Full support 37Safari iOS Full support 2Samsung Internet Android Full support 5.0
loadedChrome Full support YesEdge Full support 12Firefox Full support 3.5IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
totalChrome Full support YesEdge Full support 12Firefox Full support 3.5IE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

Legend

Full support
Full support
No support
No support
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.

See also

  • The Event base interface.