建立和探索一个简单示例之后,现在可以深入了解XMLHttpRequest对象支持的功能,以及如何在你的请求中使用它们了。起点就是第二级规范里定义的那些额外事件。之前已经使用一个:readystatechange。它是从第一等级转过来的,其他的如下表所示。
XMLHttpRequest对象定义的事件
名称 |
说明 |
事件类型 |
abort |
在请求被中止时触发 |
ProgressEvent |
error |
在请求失败时触发 |
ProgressEvent |
load |
在请求成功完成时触发 |
ProgressEvent |
loadend |
在请求已完成时触发,无论成功还是发生错误 |
ProgressEvent |
loadstart |
在请求开始时触发 |
ProgressEvent |
progress |
触发以提示请求的进度 |
progressEvent |
这些事件大多数会在请求的某一个特定点上触发。readystatechange(之前介绍后)和progress这两个事件例外,它们可以多次触发以提示进度更新。除了readstatechange之外,表中展示的其他事件都定义于XMLHttpRequest规范的第二级。注:考虑到第二级事件的实现还不到位,readystatechange是目前唯一能可靠追踪请求进度的事件。 |
|
|
调度这些事件时,浏览器会对readystatechange事件使用常规的Event对象,对其他事件则使用ProgressEvent对象。ProgressEvent对象定义了Event对象的所有成员,并增加下表中介绍的这些成员。 |
|
|
ProgressEvent定义的额外属性
名称 |
说明 |
事件类型 |
lengthComputable |
如果能够计算数据流的总长度则返回true |
布尔值 |
loaded |
返回当前已载入的数据量 |
数值 |
total |
返回可用的数据总量 |
数值 |