XMLHttpRequest2规范
文章目录
XMLHttpReque Level 2 对原有XMLHttpReque对象进行了增强,除此之外,还新增了两个对象。
新规范如下图示:
XMLHttpRequest
初始化
new的过程和之前是一样的,跨域请求需要加上withCredentials这个属性
1 | var xhr = new XMLHttpRequest(); |
传输进度
进度分为下载进度和上传进度:
1 | // 下载进度 |
FormData
初始化
1 | var fd = new FormData(); |
append方法
FormData 接口的append() 方法 会添加一个新值到 FormData 对象内的一个已存在的键中,如果键不存在则会添加该键。如果指定的键已经存在,会把新值添加到已有值集合的后面。
这个方法有两个版本:一个有两个参数的版本和一个有三个参数的版本:
1 | // value为string类型或者blob类型(比如File) |
blob全称为binary large object,可译为’二进制大对象’
ProgressEvent
示例
1 | function progressHandler(e) { |
如上,在监听到progress事件之后,会返回三个属性
- lengthComputable:资源长度是否可计算
- total:资源总长度
- loaded:已处理资源长度
它们的单位都是字节数
扩展:progress标签
html5新增了<progress>标签,我们来看一下这个标签
使用很简单:
1 | <progress max="100" value="50"></progress> |
效果:
PS:可以用chrome控制台模拟慢网速

