Подтвердить что ты не робот

Xmlhttprequest одновременный запрос не работает

Я пытаюсь сделать "много" запросов xhr, но кажется, что каждый раз, когда он ждет ответа, перед тем, как сделать другой запрос. Он вроде XHR делает очередь и всегда ждет завершения предыдущего запроса.

Что я могу сделать для запуска более одновременного запроса xhr?

$('body').delegate('.download','click', function(evt){
        evt.preventDefault(); // Not related

        var xhr = new XMLHttpRequest();
        xhr.open('GET', "proxy.php?" + this.href, true);
        xhr.responseType = 'blob';

        xhr.onload = function() {
            if (this.status == 200) {              
                var blob = new Blob([this.response], {type:'audio/mp4'});

                console.log(blob.size);
                if(blob.size > 0){
                    $("<a>").attr({
                        download: name,
                        href: URL.createObjectURL(blob),
                        target: "_blank"
                    })[0].click();
                }
            }
        };  
        xhr.send();
    });
4b9b3361

Ответ 1

Не много.

Браузеры применяют ограничение на:

  • Количество параллельных HTTP-запросов для данного источника
  • Количество параллельных HTTP-запросов в целом (это больший предел)

Если вы разделите свои запросы между большим количеством оригиналов, вы можете найти свое ограничение, поднятое от первого до второго из выше.

Ответ 2

Попробуйте найти что-то о http2, есть информация. Протокол Http2 лучше поддерживает параллельные запросы.