Chrome等浏览器只能执行6ish parallel requests。
如果我们尝试同时发起超过6个请求,
for (var i = 0; i < 11; 1++) {
var oReq = new XMLHttpRequest();
oReq.open('GET', URL);
oReq.send();
}
然后浏览器将它们排队并分批执行它们。
是否可以判断请求何时从“等待”状态转移到实际执行状态?
当请求添加到队列而不是实际开始加载时,onloadstart
事件似乎会触发。
答案 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)
};
};
}