2009-10-13 2 views
0

Google 애플리케이션 중 하나에서 웹 메소드의 성능을 향상 시키려고합니다.비동기 자바 스크립트 질문 - 잊어 버림

나는 하나의 서버에서 웹 메소드를 실행할 수 있기 때문에 여러 개의 서버에서 실행되도록 프로세스를 분할하려고합니다. 순간

가 XMLHTTP 요청 아래 코드 웹의 방법에 의해 처리 될 모든 오브젝트와 배열 (quepasatio)를 통과 표시된다 :

xmlHttp.send ("개체 ="+ quepasatio + "& Type ="+ Type + "& ToId ="+ Guid + "& ToName ="+ Name);

내가 한 것은 quepasatio 배열을 두 개로 분할하고 for 루프에서 xmlhttp를 래핑했지만 이는 프로세스 속도를 높이는 것으로 보이지 않습니다.

내가하려고하는 것은 xmlhttp 요청을 응답을 기다리지 않고 보내므로 두 번째, 세 번째, ... n 번째 요청이 첫 번째 요청 직후에 전송되도록하는 것입니다.

아이디어가 있으십니까?

TIA

답변

1

당신은 가능성이 한 번에 모두 전송하고 서버에서 헤어 데있어. 많은 브라우저에는 서버에 대기중인 요청 수를 제한하는 연결 제한이 있습니다. 서버에서 대기 중일 수 있습니다.

모든 것을 프록시에 보냅니다. 그 다음에 분배기가 올라간다는 것은 전송 된 즉시 종료 될 수있는 단일 연결을 의미합니다. 그러나 부분 결과를 다시 얻으려면 폴링 메커니즘이 필요합니다 (문제가 계속되는 경우). 그러면 문제도 복잡해집니다.

0

이렇게 처리 속도를 높이지 않는 이유는 요청이 서버에 대기 중이기 때문입니다. 서버는 각 사용자로부터 한 번에 하나의 요청 만 처리합니다.

paralell에서 호출을 시작하려면 요청을 대기열에 넣지 않도록 웹 서비스를 세션없이 만들어야합니다.

+0

여기서 우리는 어떤 서버를 사용합니까? –

+0

@crescentfresh : 예를 들어 IIS의 ASP.NET. – Guffa

+0

정말요? IIS는 한 번에 하나의 요청 만 처리 할 수 ​​있습니까? "각 사용자로부터"무엇을 의미합니까? –

2

변경 열려있는 방법 : 당신은 비동기로 호출을 보낼 것

xmlHttp.open("GET", url, true); 

; more info here

관련 문제