2016-06-27 3 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:

Holds статус 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) 
    }; 
    }; 
} 
Смежные вопросы