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 的定义
现行的标准 -

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持1 支持3.510 支持 支持
ProgressEvent() 构造函数 支持 未知22 不支持 支持 支持
initProgressEvent1 — 17123.5 — 2210 支持 — 15 支持 —?
lengthComputable50123.5 支持373.1
loaded 支持123.5 不支持 支持 支持
total 支持123.5 不支持 支持 支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 支持 支持 未知4 未知 支持 支持
ProgressEvent() 构造函数 支持 支持 未知22 未知 支持 支持
initProgressEvent 不支持 支持 —? 未知4 — 22 未知 支持 — 14 支持 —?
lengthComputable5050 未知4 未知372
loaded 支持 支持 未知4 未知 支持 支持
total 支持 支持 未知4 未知 支持 支持

相关链接