--- title: ProgressEvent slug: Web/API/ProgressEvent tags: - API - 参考 - 接口 - 进度事件 translation_of: Web/API/ProgressEvent ---
ProgressEvent 接口是测量如 HTTP 请求(一个XMLHttpRequest,或者一个 {{HTMLElement("img")}},{{HTMLElement("audio")}},{{HTMLElement("video")}},{{HTMLElement("style")}} 或 {{HTMLElement("link")}} 等底层资源的加载)等底层流程进度的事件。
{{InheritanceDiagram}}
ProgressEvent 事件。同时继承它的父元素 {{domxref("Event")}} 的属性。
unsigned long long 类型数据,表示底层流程已经执行的工作总量。可以用这个属性和 ProgressEvent.total 计算工作完成比例。当使用 HTTP 下载资源,它只表示内容本身的部分,不包括首部和其它开销。unsigned long long 类型数据,表示正在执行的底层流程的工作总量。当使用 HTTP 下载资源,它只表示内容本身的部分,不包括首部和其它开销。同时继承它的父元素 {{domxref("Event")}} 的方法。
ProgressEvent。下面的示例为一个新建的 {{domxref("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()
| 规范 | 状态 | 注解 |
|---|---|---|
| {{SpecName('XMLHttpRequest', '#interface-progressevent', 'ProgressEvent')}} | {{Spec2('XMLHttpRequest')}} |
{{Compat("api.ProgressEvent")}}