2015-12-21 21 views
10

私は「たくさん」を作成しようとしていますxhrリクエストですが、別のリクエストを行う前にその答えを待つようです。 XHRのようにキューを作成し、前回の要求が完了するのを常に待ちます。xmlhttprequest同時リクエストは機能しません

もっと同時実行するにはどうすればよいですか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

ウェブワーカーを試してみましたか? – mrapsogos

+0

はい、同じことが起こります。両方のワーカーが一緒に呼び出されますが、2番目のXHRは最初のXHRが終了するのを待ちます。 –

+0

新しいブラウザウィンドウを開き、requsetを作成し、ポストメッセージを使用して応答を送信し、ちょうど助けてくれるかもしれない考え。 – mrapsogos

答えて

11

ブラウザはに制限を強制:

  • 所定の原点
  • 合計並列HTTPリクエストの数(これは大きな限界である)

に平行HTTPリクエストの数より多くのオリジナルの間でリクエストを分割すると、上記の最初から2番目の制約が発生する可能性があります。

+1

クロムによって実施される制限は、最大リクエスト件数6件、そうですか? –

2

http2について見つけようとします。infoがあります。 Http2プロトコルは、並列要求のサポートを強化しています。

関連する問題