如何知道请求何时开始?

Dav*_*ite 5 javascript xmlhttprequest

Chrome 等浏览器只能执行6 个左右的并行请求

如果我们尝试同时发起 6 个以上的请求,

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

然后浏览器会将它们排队并以 6 个为一组执行它们。

浏览器中的请求

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

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

pri*_*ton 2

您是否查看过HttppRequest 的 readyState 属性?也许它会涵盖你的问题..

XMLHttpRequest 对象属性

就绪状态:

保存 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)
    };
  };
}
Run Code Online (Sandbox Code Playgroud)