jQuery를 사용하여 두 번의 연속 된 Ajax 요청을하는 JavaScript 함수가 있습니다. 두 번째 함수가 호출되기 전에 첫 번째 요청이로드되었는지 확인하려고합니다. 내가 할 수있는 방법이 있니?첫 번째 아약스 함수가 두 번째 코드보다 먼저 완료되는지 확인하십시오.
답변
$.ajax
옵션에 async: false
을 지정하거나 첫 번째 호출의 complete
콜백에서 두 번째 ajax 호출을 지정하십시오.
'async : false'가 아닐까요? –
실제로 그렇게됩니다. 그 부정적인 논리를 버려라. –
'async : false'는 훌륭하게 작동합니다. 두 함수를 호출하는 순서가 다양하기 때문에 콜백 메소드보다 훨씬 선호됩니다. – Brian
첫 번째 기능에 대한 콜백에서 두 번째 전화를 겁니다.
최상의 결과를 얻으려면 첫 번째 콜백 콜백에서 두 번째 함수를 호출해야합니다. 예를 들어
:
$.post("http://www.somewebsite.com/page.php", function(data) {
// whatever
function2();
});
$.post("script1.php", {data:"val"}, function(response) {
$.post("script2.php", {data:response}, function(results) {
// this second call will be initialized when the first finishes
});
});
예제 구현 :
function callback() {$('div#second_ajax_output').load('http://www.google.com');}
$('div#first_ajax_output').load('http://www.yahoo.com',callback);
편집 : 오해 질문; 내 잘못이야. 동시에 두 개의 AJAX 요청을 동시에 실행하기를 원하지만 두 작업이 완료된 후에 만 콜백을 실행하는 경우, 이렇게하는 방법입니다!
이 시도 :
var completedCount = 0;
var callback = function()
{
completedCount++;
if (completedCount == 2)
{
// Do something.
}
};
$.post('url-1', {}, callback);
$.post('url-2', {}, callback);
가장 간단한 방법은 다음과 같이이다 jQuery를 사용하여 :
$.ajax({
type: "POST",
url: "some.php",
success: function(msg){
$.ajax({
type: "POST",
url: "some2.php",
success: function(msg){
alert("End of second call");
}
});
}
});
간단한 방법은 두 번째 요청을 발사 할 때 (전체 콜백에서) 처음으로 돌아갑니다.
더 복잡한 방법이 필요한 경우 AjaxQueue 플러그인을 살펴보십시오. 이 방법으로 요청을 큐에 넣을 수 있습니다.
- 1. 첫 번째 위젯이 두 번째 위젯을 업데이트합니다.
- 2. 첫 번째 민첩한 프로젝트 - 먼저 무엇을 써야합니까?
- 3. 첫 번째 활동에 두 번째 활동 의도를 수신하는 방법
- 4. 첫 번째
- 5. 아약스 mysql 목록에서 첫 번째 행을 삭제
- 6. 첫 번째 테이블에서 ID를 선택하고 두 번째 테이블에있는 ID를 선택하십시오.
- 7. Haskell : 첫 번째 값을 기준으로 목록에서 두 번째 값을 찾으십시오.
- 8. 반환 값은 두 번째 아약스 전화
- 9. Iphone : 첫 번째 섹션의 머리글을 볼 수 있도록 두 번째 섹션의 첫 번째 셀로 스크롤하는 방법
- 10. .bat 사용 - 첫 번째 .csv의 특정 첫 번째 열 데이터에서 두 번째 .csv 만들기
- 11. JSF 2 : 아약스 액션 중에 두 번째 빈에 첫 번째 빈이 호출되는 이유는 무엇입니까?
- 12. WPF - 첫 번째 창에서 두 번째 창 제어
- 13. 배치 파일, 첫 번째 명령 종료시 두 번째 명령 실행
- 14. javascript없이 MVC3에서 첫 번째 항목을 onchange로 두 번째 선택하십시오.
- 15. Andriond가 첫 번째 활동에서 이벤트를 보내고 두 번째 이벤트를 수신합니다.
- 16. 두 번째 모델과 연관되어 첫 번째 모델을 주문하십시오.
- 17. 두 번째 테이블을 업데이트하려면 어떻게해야합니까? 첫 번째 테이블은 MySQL에서 업데이트됩니까?
- 18. 첫 번째 팝업 버튼을 클릭하여 두 번째 UIPopOverController를 여는 방법
- 19. 선택 상자 문제 - 첫 번째 선택에 기초한 두 번째 옵션
- 20. 첫 번째 요소가 사용될 때 XSD에서 두 번째 요소가 필요함
- 21. 첫 번째 항목을 클릭하여 두 번째 탭 표시 줄을 슬라이드하십시오.
- 22. 첫 번째 기준으로 두 번째 datepicker 새로 고침
- 23. 그래프는 첫 번째 tabitem에서는 작동하지만 두 번째 tabitem에서는 작동하지 않습니까?
- 24. MySQL - 첫 번째 쿼리 결과를 두 번째 쿼리의 열로 병합
- 25. 첫 번째 양식을 자동으로 닫는 동안 두 번째 양식 열기
- 26. 두 번째 열이 첫 번째 열 아래로 들어가는 이유는 무엇입니까?
- 27. 첫 번째 테이블의 ID를 기반으로 두 번째 테이블의 값을 합산합니다.
- 28. 첫 번째 탭에서 두보기 간의 전환시 배경에있는 두 번째 탭에서보기
- 29. C에서 첫 번째 경기를 건너 뛰는 두 번째 경기 대체 #
- 30. 두 번째 자녀의 두 번째 자녀 - Jquery
첫 번째 것이 반환 될 때까지 기다려야하는 두 번째 * Ajax * 호출입니까, 아니면 기다려야하는 두 번째 * 콜백 *입니까? (즉, 두 번째 아약스 요청을 해고하기 전에 기다려야합니까, 아니면 둘 다 해고 될 수 있지만 두 번째가 먼저 반환되면 콜백은 첫 번째 반환 될 때까지 차단됩니다) – Graza
두 번째 함수는 첫 번째 함수가 완료 될 때까지 실행되지 않아야합니다. 첫 번째 함수는 양식 요소를 만들고 두 번째는 양식 값을 가져 와서이를 기반으로 계산을 수행합니다. – Brian