변경 이벤트에서 두 개의 함수를 호출합니다.첫 번째 실행 후 두 번째 함수를 호출하는 방법은 무엇입니까?
function1();
function2();
function1()
가 : 아약스 호출
function2()
입니다 : 기능 1 전에 실행지고있다().
왜 이런 일이 발생합니까?
어떤 도움이 필요합니까?
변경 이벤트에서 두 개의 함수를 호출합니다.첫 번째 실행 후 두 번째 함수를 호출하는 방법은 무엇입니까?
function1();
function2();
function1()
가 : 아약스 호출
function2()
입니다 : 기능 1 전에 실행지고있다().
왜 이런 일이 발생합니까?
어떤 도움이 필요합니까?
Please look at the code written below:
function1() {
$.ajax({
url: myurl,
type: 'GET',
async:false,
success: function(response) {
function2();
}
});
}
여기에 "비동기 : false"를 참고 성공 방법을 호출 할 수 있도록됩니다 첫 번째 함수가 성공적으로 실행되었습니다. 따라서 function2()가 function1()을 호출 할 수 있도록 "async : false"를 사용해야합니다.
function1()
당신이 아약스에서 성공적인 응답 후 기능 2를 호출 JQuery와 아약스
function1() {
$.ajax({
url: myurl,
type: 'GET',
success: function(response) {
function2();
}
});
}
를 사용하는 경우 아약스 기능은 다음 아약스
의 성공에 function2()
를 호출하는 경우.
function function1()
{
//Ajax Call
..
..
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
function2();
}
}
Ajax
의 제 A는 Ajax 요청이 여전히 처리되는 동안 정규 자바 스크립트 프로그램 흐름이 계속 즉 asynchronous
을 의미한다. 따라서 function2
은 function1
에서 시작된 Ajax 요청이 완료되기 전에 실행됩니다.
해결 방법 : 자바 스크립트의 모든 비동기 메서드는 비동기 메서드 완료 후 호출되는 함수 인 소위 callback
을 제공합니다. jQuery.ajax()
에서이 콜백은 success
매개 변수와 함께 제공됩니다. 이 콜백 내에 function2
에 전화를 걸면 작동합니다.
function1() {
...
$.ajax({
url: '...',
type: 'GET',
success: function(data) {
// this will be executed after the asynchronous method finishes
function2();
}
});
}
일반적으로 전화 Fiddle
jQuery를 아약스 반환 연기 객체 (http://api.jquery.com/category/deferred-object/), 그 진짜로
유용한 이
function function1() {
$.ajax({
url: "url",
type: 'POST',
}).success(function (html) {
function2();
});
}
등이이 경우
function1(function() {
function2();
});
Ajax 호출과 같은 너 같은 것들. 그건 그렇고, 지연 객체 지원 체인 패턴, 그래서 당신은 하나 이상의 기능을 호출 할 수 있습니다.
그래서, 당신이 할 수있는 또 다른 후 하나 개의 함수를 실행하려면 다음
function ajaxCall(){
return $.get('your/api/call', {param:1});
}
function fun1(){
console.log('Function 1 was called');
}
function fun2(){
console.log('Function 2 was called');
}
ajaxCall().done(fun1).done(fun2);
아니면 $ 사용할 수 있습니다.때
$.when($.get('your/api/call'))
.then(function(){ alert(1); })
.then(function(){ alert(2); });
유용한 링크 :
function1은 function2를 호출 할 콜백 메소드를 받아 들여야합니다 ... ajax 호출이 완료되면 콜백이 실행됩니다. –
http://stackoverflow.com/questions에서 기본 아이디어를 얻을 수 있습니다./14220321/AJAX 호출 응답 방법 –
두 가지 개념에 대해 더 자세히 알아 보았습니다. 1) Ajax 호출과 비동기 호출 방법. 2) 자바 스크립트 콜백. 이 두 가지를 읽으면 이것이 일어나는 이유를 알게 될 것입니다. – Nikhil