2017-01-09 1 views
0

웹 및 여기에서 여러 답변을 찾고 있지만 문제를 해결할 수있는 방법을 찾을 수 없습니다.PHP ajax 여러 번 호출

나는 같은 PHP 스크립트에 여러개의 JQuery ajax 호출을하고있다. 처음에는 이전 호출이 수행 된 후에 만 ​​beeing 호출이 실행되는 것을 보았습니다. 나는 PHP가 다른 ajax 호출로 세션을 잠그는 것을 막기 위해 스크립트 시작 부분에 session_write_close()을 추가하여 이것을 변경했다. 스크립트에서 $ _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