2017-01-19 5 views
0

非同期要求がどのように機能するのか理解できないかもしれませんが、私の観点から見ると、1 ajaxまたは10はほぼ同じ時間で終了する必要があります。今私は問題に直面しています。私は同時に3回のAjaxリクエストを送信しています。最初のAjaxでは約3秒、2回目は15秒、最後は18秒かかりました。しかし、もし私が最初のアヤックスだけを送るなら、それは3秒かかって、秒は15秒かかり、3分の1秒しかかかりません。だから、他の言葉で、私は一緒に3 AJAXを送信する場合には、 angular2 async http requests

this.contractService.saveContractsForOpportunity(selectedContracts).subscribe(data => { 

}); 
this.contractService.saveContractsForOpportunity(selectedContracts).subscribe(data => { 

}); 
this.contractService.saveContractsForOpportunity(selectedContracts).subscribe(data => { 

}); 
問題ではないか、私はそれを送信する場合は、1つ

このような
this.contractService.saveContractsForOpportunity(selectedContracts).subscribe(data => { 
    this.contractService.saveContractsForOpportunity(selectedContracts).subscribe(data => { 
     this.contractService.saveContractsForOpportunity(selectedContracts).subscribe(data => { 

     }); 
    });   
}); 

ずつそれは enter image description hereを完成するために同じ時間をtooks

バックエンドまたはサーバーの設定についてのみですか。

+0

最初のケースの合計時間は18秒であり、2番目のケース(18-19秒)ではほとんど同じです。 –

+0

私の質問では、session_write_closeが答えです。 PHPは各リクエストのセッションファイルをロックし、session_write_close()を実行するまでそのロックを維持します。私はそれを動作させるためにすべてのPHPスクリプトに入れなければならないように見える –

答えて

1

ほとんどの場合、問題はサーバー側にあります。サーバは、同じIPからの複数の要求を同時に処理することを許可していますか?

+0

私は、私はボックスからapache2を使用して、私は確認することができますかわからない? –

+1

私は正しい方法で私に指示してくれてありがとう、 –

+0

あなたはそれを解決してうれしいよ、うれしいよ^^ –