2016-06-27 120 views
4

Chrome等浏览器只能执行6ish parallel requests如何知道请求何时开始?

如果我们试图一次同时启动超过6个请求,

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

那么浏览器就会排队起来,并分批执行的6

requests in browser

是他们有可能知道请求何时从“等待”状态转移到实际执行状态?

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

回答

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) 
    }; 
    }; 
} 
相关问题