Skip to content

Latest commit

 

History

History
37 lines (25 loc) · 2.08 KB

进度事件.md

File metadata and controls

37 lines (25 loc) · 2.08 KB

进度事件

ProgressEvent 接口是测量 HTTP 请求(一个 XMLHttpRequest,或者一个 <img>、<audio>、<video>、<style> 或 <link> 等底层资源的加载)等底层流程进度的事件

  • 一些进度相关的事件
    1. loadstart:在接收响应的第一个字节时触发
    2. progress:在接收响应期间反复触发
    3. error:在请求出错时触发
    4. abort:在调用 abort() 终止连接时触发
    5. load:在成功接收时触发
    6. loadend:在通信完成时触发,且在 error,abort 或 load 之后触发

构造函数

ProgressEvent() 构造函数返回一个新的 ProgressEvent 对象,表示当前一个过程的进度

new ProgressEvent(type, options?)
  1. type:事件名称.浏览器将其设置为loadstartprogressaborterrorloadtimeout 或者 loadend
  2. 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)并且不包含头部和其他的开销