我试图制作"很多" 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();
});
答案 0 :(得分:11)
不是很多。
浏览器对以下内容强制执行:
如果您在更多原件之间拆分请求,您可能会发现您的约束从上面的第一个提升到第二个。
答案 1 :(得分:2)
尝试找一些关于http2的内容,有一些info。 Http2协议更好地支持并行请求。