如何知道请求何时开始?

时间:2016-06-27 18:44:27

标签: javascript xmlhttprequest

Chrome等浏览器只能执行6ish parallel requests

如果我们尝试同时发起超过6个请求,

for (var i = 0; i < 11; 1++) {
  var oReq = new XMLHttpRequest();
  oReq.open('GET', URL);
  oReq.send();
}

然后浏览器将它们排队并分批执行它们。

requests in browser

是否可以判断请求何时从“等待”状态转移到实际执行状态?

当请求添加到队列而不是实际开始加载时,onloadstart事件似乎会触发。

1 个答案:

答案 0 :(得分:2)

你看过readyState property of HttppRequest了吗?也许它会涵盖你的问题..

XMLHttpRequest对象属性

readyState的:

保持XMLHttpRequest的状态。从0到4的变化:

0:请求未初始化

1:建立服务器连接

2:收到请求

3:处理请求

4:请求已完成且响应已准备好

因此,使用此信息,您可以执行以下操作:

for (var i = 0; i < 11; 1++) {
  var oReq = new XMLHttpRequest();
  oReq.open('GET', URL);
  oReq.send();

  oReq.onreadystatechange = function(){
    if (oReq.readyState == 4 && oReq.status == 200) {   
      //do something like an alert
      //you can get rid of the oReq.status if you want and 
      //just track the readyState (0-4)
    };
  };
}