ProgressEvent
接口是测量 HTTP 请求(一个 XMLHttpRequest,或者一个 <img>、<audio>、<video>、<style> 或 <link> 等底层资源的加载)等底层流程进度的事件
- 一些进度相关的事件
loadstart
:在接收响应的第一个字节时触发progress
:在接收响应期间反复触发error
:在请求出错时触发abort
:在调用abort()
终止连接时触发load
:在成功接收时触发loadend
:在通信完成时触发,且在 error,abort 或 load 之后触发
ProgressEvent()
构造函数返回一个新的ProgressEvent
对象,表示当前一个过程的进度
new ProgressEvent(type, options?)
type
:事件名称.浏览器将其设置为loadstart
、progress
、abort
、error
、load
、timeout
或者loadend
options
:一个对象,除了Event
中定义的属性,他还具有以下属性:lengthComputable
:默认值是false
。换句话说,它说明进度是否可衡量。loaded
:它默认值0
,表示底层的进程已经执行的工作量。可以使用该属性和ProgressEvent.total
计算完成工作的比率。当使用一个 HTTP 下载资源,这个仅表示内容本身的一部分,不包含头和其他开销。total
:它默认为0
,表示底层的进程正在执行的工作量的总量。当使用一个 HTTP 下载资源,这个仅表示内容本身的一部分,不包含头和其他开销。
ProgressEvent.prototype.lengthComputable(
只读
)
- 一个布尔值,表示关联的资源是否有可计算的长度
ProgressEvent.prototype.loaded(
只读
)
- 一个整数,表示表示底层的进程已经执行的工作量。可以使用该属性和
ProgressEvent.total
计算完成工作的比率
ProgressEvent.prototype.total(
只读
)
- 只读属性是一个无符号 64 位整数值,表明正在处理或者传输的数据的总大小。在传输 HTTP 的情况下,这是消息体的大小(
Content-Length
)并且不包含头部和其他的开销