2017-01-09 5 views
0

私はウェブとここでいくつかの回答を探していましたが、私の問題を解決したものは見つかりませんでした。PHP ajax複数のコール

同じPHPスクリプトに対して、いくつかのJQuery ajax呼び出しを行っています。最初は、前回の処理が完了した後にのみ実行されたコールが表示されていました。私はsession_write_close()をスクリプトの先頭に追加して、PHPがセッションを他のajax呼び出しにロックしないようにしました。私はスクリプト内の$ _SESSION変数を編集しておらず、読み込みのみを行っています。

今の行動が良いですが、画像で見ることができるよう代わりに同時に開始するすべての私の要求を有していると、彼らは、ブロックで行く:

Request timeline

私はすべての私を得るために何をすべきリクエストは同じ瞬間から始まり、実際には他のリクエストとのリンクなしで実行されますか?より明確にするために

は、ここに私のjsのコードです:

 var promises = []; 
     listMenu.forEach(function(menu) { 
      var res = sendMenu(menu);//AJAX CALL 
      promises.push(res); 
     }); 
     $.when.apply(null, promises).done(function() { 
      $('#ajaxSpinner').hide(); 
      listMenu = null; 
     }); 

私のPHPスクリプトは、単にデータを更新/挿入、およびで始まるされています。私は、私は物事を間違ってやっていると思います

<?php 

session_start(); 
session_write_close(); 

//execution 

方法。事前に貴重な助けをいただきありがとうございます!

トーマス

+0

http://stackoverflow.com/questions/1060539/parallel-asynchronous-ajax-requests-using-jquery/22317997#22317997 – mplungjan

答えて

1

これは、ブラウザインスタンスごとに単一のサーバへの同時接続の最大数があり、おそらくブラウザの制限です。 Chromeでは、スクリーンショットに表示されているブロックのサイズを反映した6となっています。これは09年以降ですが、それでも関連性があります:https://bugs.chromium.org/p/chromium/issues/detail?id=12066

+0

はい、すべてのブラウザには制限があります同時リクエストについて:http://stackoverflow.com/q/561046/1220930、http://stackoverflow.com/q/985431/1220930 – Timurib

+0

お二人ともお返事ありがとうございます。私はブラウザの制限を知らなかった。私は、私が何か良いものを見つけるまで、私は今のように物事を維持すると思います。 – ThomasLC