ProgressEvent - 表示测量基础流程进度的事件
ProgressEvent
接口表示测量基础流程进度的事件,例如 HTTP 请求(用于 XMLHttpRequest
或加载底层资源,如 <img>
,<audio>
,<video>
,<style>
或 <link>
)。
构造函数
ProgressEvent()
使用给定的参数创建一个 ProgressEvent
事件。
属性
还从其父接口 Event
继承了属性。
ProgressEvent.lengthComputable
只读
一个 Boolean
标志,指示基础流程是否可以计算总工作量和已经完成的工作量。换句话说,它告诉进度是否可测量。
ProgressEvent.loaded
只读
一个 unsigned long long
,代表基础流程已经完成的工作量。可以通过属性和 ProgressEvent.total
来计算完成的工作量。使用 HTTP 下载资源时,这仅代表内容本身的一部分,而不代表标头和其他开销。
ProgressEvent.total
只读
一个 unsigned long long
,表示基础流程正在执行的工作总量。使用 HTTP 下载资源时,这仅代表内容本身,而不代表标头和其他开销。
方法
还从其父接口 Event
继承了方法。
ProgressEvent.initProgressEvent()
使用不推荐的 Document.createEvent("ProgressEvent")
方法来初始化 ProgressEvent
。
实例
以下实例将 ProgressEvent
添加到新的 XMLHTTPRequest
中,并使用它显示请求的状态。
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()
规范
规范 | 状态 | 备注 |
---|---|---|
XMLHttpRequest ProgressEvent 的定义 |
现行的标准 | - |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 1 | 支持 | 3.5 | 10 | 支持 | 支持 |
ProgressEvent() 构造函数 | 支持 | 未知 | 22 | 不支持 | 支持 | 支持 |
initProgressEvent | 1 — 17 | 12 | 3.5 — 22 | 10 | 支持 — 15 | 支持 —? |
lengthComputable | 50 | 12 | 3.5 | 支持 | 37 | 3.1 |
loaded | 支持 | 12 | 3.5 | 不支持 | 支持 | 支持 |
total | 支持 | 12 | 3.5 | 不支持 | 支持 | 支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 支持 | 支持 | 未知 | 4 | 未知 | 支持 | 支持 |
ProgressEvent() 构造函数 | 支持 | 支持 | 未知 | 22 | 未知 | 支持 | 支持 |
initProgressEvent | 不支持 | 支持 —? | 未知 | 4 — 22 | 未知 | 支持 — 14 | 支持 —? |
lengthComputable | 50 | 50 | 未知 | 4 | 未知 | 37 | 2 |
loaded | 支持 | 支持 | 未知 | 4 | 未知 | 支持 | 支持 |
total | 支持 | 支持 | 未知 | 4 | 未知 | 支持 | 支持 |
相关链接
Event
基本接口。