XMLHttpRequest Level 2事件:等同于readyState

问题描述:

XMLHttpRequest Level 2在onreadystatechange之一上添加了许多更有意义的事件。XMLHttpRequest Level 2事件:等同于readyState

这些事件中的一些与readyState值之间是否存在对应关系?

至于我可以告诉大家:

1 loadstart 
2 progress 
3 ? 
4 loadend; load 

我还没有制定出相当于3,这是一个有点模糊的反正。

+0

根据[此](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState)进度是readystate 3 –

+0

你看过规格吗? https://www.w3.org/TR/XMLHttpRequest2/#the-responsetype-attribute这个笑话是,它没有什么...... :)它指向你https://xhr.spec.whatwg.org/ – epascarello

这里就是我发现使用下面的代码:

var oReq = new XMLHttpRequest(); 

oReq.addEventListener("progress", ev); 
oReq.addEventListener("load", ev); 
oReq.addEventListener("loadstart", ev); 
oReq.addEventListener("loadend", ev); 
oReq.addEventListener("readystatechange", ev); 


oReq.open('GET', '/blah'); 

function ev(e) { 
    console.log(e.type, oReq.readyState); 
} 
oReq.send(); 

输出结果

readystatechange 1 
loadstart 1 
readystatechange 2 
readystatechange 3 
progress 3 
readystatechange 4 
load 4 
loadend 4 

所以现在看来​​,这是

  1. loadstart
  2. ??? - 没有等效 - (这是接收到的报头)
  3. 进展
  4. 负载/ loadend
+0

它似乎“进度”可能依赖于浏览器。 Safari将其报告为状态2,而Chrome和Firefox将其报告为3. – Manngo

+0

Safari正在成为新的Internet Explorer:p –

+0

除Safari正在运行... – Manngo