ProgressEvent
ProgressEvent
接口表示测量底层进程(如 HTTP 请求(对于 XMLHttpRequest
,或 <img>
、<audio>
、<video>
、<style>
或 <link>
的底层资源加载))的进度的事件。
构造函数
ProgressEvent()
-
使用给定的参数创建一个
ProgressEvent
事件。
实例属性
还继承了其父级 Event
的属性.
ProgressEvent.lengthComputable
只读-
一个布尔标志,指示是否可以计算已传输或处理的数据大小 (
loaded
) 与数据总大小 (total
) 之间的比率。换句话说,它指示进度是否可衡量。 ProgressEvent.loaded
只读-
一个 64 位无符号整数,指示已传输或处理的数据大小(以字节为单位)。可以通过将
ProgressEvent.total
除以此属性的值来计算比率。在使用 HTTP 下载资源时,这仅计算 HTTP 消息的主体,不包括标头和其他开销。请注意,对于总大小未知的压缩请求,loaded
可能包含压缩数据或解压缩数据的大小,具体取决于浏览器。截至 2024 年,它在 Firefox 中包含压缩数据的大小,在 Chrome 中包含未压缩数据的大小。 ProgressEvent.total
只读-
一个 64 位无符号整数,指示正在传输或处理的数据的总大小(以字节为单位)。在使用 HTTP 下载资源时,此值取自
Content-Length
响应标头。它仅计算 HTTP 消息的主体,不包括标头和其他开销。
实例方法
继承了其父级 Event
的方法。
示例
以下示例将 ProgressEvent
添加到新的 XMLHTTPRequest
并使用它来显示请求的状态。
js
const progressBar = document.getElementById("p"),
client = new XMLHttpRequest();
client.open("GET", "magical-unicorns");
client.onprogress = (pe) => {
if (pe.lengthComputable) {
progressBar.max = pe.total;
progressBar.value = pe.loaded;
}
};
client.onloadend = (pe) => {
progressBar.value = pe.loaded;
};
client.send();
规范
规范 |
---|
XMLHttpRequest 标准 # interface-progressevent |
浏览器兼容性
BCD 表仅在浏览器中加载
另请参阅
Event
基本接口。