2014-07-08 7 views
0

저장 프로 시저 실행의 진행 상태를 확인하기 위해 AJAX 호출을 수행하고 있습니다. 저장 프로시 저는 진행률을 추가 테이블에 기록합니다. AJAX를 사용하여 저장 프로 시저를 실행하는 페이지를 호출하고 또 다른 AJAX는 다른 테이블을 호출하여 추가 테이블을 쿼리하고 상태 값을 반환합니다.여러 비동기 AJAX 호출

내가 만나는 문제는 가장 긴 AJAX 요청의 응답으로 모든 응답이 동시에 발생하는 것처럼 보입니다. 사진 아래를 참조하십시오 :

enter image description here

두 번째 요청

는 응답 만 몇 밀리 초 걸립니다 첫 번째 전에 처리되어야한다.
$(document).ready(function(){ 
     $.post('BS_process.asp',{u:<%=UniqID%>, p:<%=ProfileID%>}).done(function(response){ 
//   DO STUFF 
     }).fail(function(){ 
//   DO STUFF 
     }); 

     $.post('BS_progress_ajax.asp',{u:<%=UniqID%>}).done(function(response){ 
      console.log(response); 
     });  
    }); 

가 지금은 너무 잘 모르겠지만, 나는 그것 때문에 동시 요청의 서버 제한 일어나고있는 생각 :

위의 결과는 아래의 jQuery 코드에 의해 수행됩니다. 내 요구 사항은 즉시 각 응답을 얻는 것입니다. 결국 나는 진행 상황을 확인하기위한 간격을 구현할 것이다.

어떻게 세션이 세션 당 단일 스레드이기 때문이다이 문제

답변

0

대해 이동하는 저를 알려 주시기 바랍니다. 동일한 세션에 대한 ASP 스크립트에 대한 요청은 순차적으로 만 처리 될 수 있으므로 한 번에 하나의 요청 만 처리됩니다. 이를 막으려면 페이지에서 세션 사용을 중단하고 꺼야합니다 : http://support.microsoft.com/kb/244465/en-us. 세션이 필요한 경우 대신 데이터베이스를 사용해야 할 수도 있습니다.

+0

데이터베이스 솔루션에 대해 좀 더 설명해 주시겠습니까? – Dimt

+0

먼저 사용자가 로그인 한 다음 토큰을 데이터베이스의 키로 사용하여 데이터를 저장 한 후에 토큰을 생성합니다. 만료 및 정리가 필요할 것입니다. 그것은 꽤 복잡한 과정이며 보안에 유의해야합니다. asp.net을 사용하면 세션을 업데이트하지 않는 여러 요청을 처리하려는 페이지에 대해 readonly를 사용할 수 있습니다. –

+0

읽기 전용 asp.net으로 충분할 것 같습니다. 시도해 볼 것입니다. – Dimt