这个
ProgressEvent
接口用来表示测量底层操作一个HTTP请求的进度(例如:一个 XMLHttpRequest
、一个底层资源像
<img>
, <audio>
, <video>
, <style>
or <link>
).
Constructor
ProgressEvent()
- 用给定的参数创造一个
ProgressEvent
Properties
同时继承它的父元素 Event
的属性。
ProgressEvent.lengthComputable
只读- 它是一个布尔值标识,表明总共需要完成的工作量和已经完成的工作是否可以被底层所计算到。换而言之,它表示的就是过程是否是可以测量的。
ProgressEvent.loaded
只读- 是一个unsigned long long类型,表示底层进程已经执行的工作量。所做的工作比率可以用属性和ProgressEvent.total计算。当使用HTTP下载资源时,这只表示内容本身的一部分,而不是头和其他开销。
ProgressEvent.total
只读- 是unsigned long long类型,表示底层进程正在执行的工作总量。当使用HTTP下载资源时,这只表示内容本身,而不是头和其他开销。
Methods
同时继承它的父元素 Event
的方法。
ProgressEvent.initProgressEvent()
- 使用已经被弃用的
Document.createEvent("ProgressEvent")
方法,初始化一个已经创建好的ProgressEvent。
Examples
下面的例子向一个新的 XMLHTTPRequest
请求添加了一个 ProgressEvent,并且用它来显示这个请求的状态。
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 |
---|---|---|
Progress Events ProgressEvent |
Recommendation | Initial definition. |
Browser compatibility
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 1.0 | (Yes) | 3.5 (1.9.1) | 10.0 | (Yes) | (Yes) |
initProgressEvent() |
未实现[1] | ? | 未实现[2] | 10.0 | 未实现[4] | 未实现[3] |
Feature | Android | Android Webview | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | 1.0 (1.9.1) | 10.0 | (Yes) | (Yes) | (Yes) |
initProgressEvent() |
未实现[3] | 未实现 | ? | 未实现[2] | 10.0 | 未实现[4] | 未实现[3] | 未实现 |
[1] This feature was implemented in Chrome 1.0, but removed in Chrome 17.0.
[2] This feature was implemented in Gecko 1.9.1 (Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0), but removed in Gecko 22 (Firefox 22 / Thunderbird 22 / SeaMonkey 2.19).
[3] This feature was removed at some point.
[4] This feature was removed in Opera 15.0.
See also
- The
Event
base interface.