2010-11-25 2 views
1

내 서블릿에 Ajax 요청 (다중)이 있습니다. 각 요청은 텍스트 상자의 onBlur에 만들어집니다. 총 3 개의 텍스트 상자가 있습니다. 나는 firt 결과의 응답이 오면 다음 요청 만 해고해야한다는 요구 사항이 있습니다. 이와 비슷한 작업을 한 사람이 있으면 알려 주시기 바랍니다. 클라이언트 쪽에서 Dojo/Digit을 사용하고 서버 쪽에서 간단한 java Servlet을 사용하고 있습니다. 감사합니다. .Ajax 요청 동기화

답변

4

간단한 코딩으로이 작업을 수행 할 수 있습니다. 첫 번째 요청의 응답 후에 만 ​​두 번째 요청을 보내야하는 경우 첫 번째 요청의 성공 조건에서 두 번째 요청을 코딩해야합니다.

dojo.xhrPost({ 
form:"someForm", 
load: function(data, args){ 
    // Success 
// call the second request 
}, 
error: function(err, args){ 
    // Error 
} 
}); 

나는 이것이 당신은 아약스 요청을 전송하기 전에 노드에 속성을 넣을 수 있습니다

+0

또는 xhrPost의 반환 값에 "then"을 호출 할 수 있습니다.이 호출은 연쇄 콜백을 지연시킵니다. http://dojotoolkit.org/reference-guide/dojo/Deferred.html을 참조하십시오. – peller

0

도움이되기를 바랍니다 : 아래의 코드에서보세요. 콜백 함수에서 노드의 속성을 변경할 수 있습니다. 모든 ajax 요청을 보내기 전에이 속성을 검사 할 수 있으며 이미 하나의 Ajax 요청이 처리되고 있다면 새로운 요청을 보내는 것을 피할 수 있습니다.

이미 하나의 요청이 처리되고 있다는 표시를 사용자에게 제공하는 것이 좋습니다.

'sync'라는 속성 하나가 http://api.dojotoolkit.org/jsdoc/dojo.xhrGet입니다. 그러나 사실로 만드는 것은 바람직하지 않습니다.